我已经测试了以下内容:
!pip freeze >requirements.txt --> 保存环境中的所有包
pipreqs --> 返回一个空文件
我需要所有导入的包以及相应版本的编译。如何在 Google Colab 中执行此操作而不获取所有已安装的软件包?
是的,我在使用时也遇到过类似的问题
!pip freeze > requirements.txt
您将获得最初在 colab 中安装的所有软件包。
你可以尝试一开始就安装session_info:
!pip install session-info
然后导入您需要的所有内容并运行此命令以查看导入的内容:
import session_info
session_info.show()
更新:
这个命令可能会让你大致了解一下,但它看起来并不是很完整。我很快又回到了老方法,在本地 python 项目中添加了依赖项并使用了以下 2 个之一:
pip freeze > requirements.txt
pip list --format=freeze > requirements.txt
其他方法都不适合我,但我想出了一个可靠的替代方案,即纯 python(无导入)。
要从 Colab 获取干净的requirements.txt 文件:
在安装之前,保存 Colab 默认值的基线 requirements.txt 文件:
pip freeze > /content/requirements_v0.txt
安装 pip 后,保存完整环境的 requirements.txt 文件:
pip freeze > /content/requirements_v1.txt
仅提取您的包:
requirements_before_installs = '/content/requirements_v0.txt'
requirements_after_installs = '/content/requirements_v1.txt'
'''
# filter out packages from junk
'''
with open(requirements_before_installs, 'r') as f:
junk = f.readlines()
with open(requirements_after_installs, 'r') as f:
packages_plus_junk = f.readlines()
packages = [package for package in packages_plus_junk if package not in junk]
'''
# save clean file
'''
with open('/content/requirements_final.txt', 'w') as f:
f.writelines(packages)
import sys
print(sys.modules.keys())