我有一个带有膨胀requirements.tx的存储库,我想清理它。使用pipreqs我已经将我的requirements.txt设置为我的存储库所需的最小包集。为了测试这一点,我安装了一个virtualenv来安装软件包,然后运行所有的单元测试以确保它们是令人满意的
virtualenv temp_venv --no-site-packages
source temp_venv/bin/activate
pip install -r requirements.txt
运行良好,但我看到收集并安装了大量额外的软件包。为什么?是否根据所需软件包的需要对其进行标识并进行安装?如果是这样,我是否应该将它们包含在requirements.txt中
这可能是因为在
requirements.txt
中编写的lib具有依赖性。例如:如果您已将scipy
作为需求编写numpy
也将被安装,因为scipy
依赖于numpy
对。这些包是您的依赖项的依赖项.
但是,不应该直接指定它们。自动工具知道递归地下载依赖项,这将大大增加维护开销
嗯,对我来说,上述答案并非如此。Pip安装正在安装requirements.txt中没有的额外软件包。解决办法是:
运行conda create-n venv_name和conda activate venv_name,其中venv_name是虚拟环境的名称
运行conda安装pip。这将把pip安装到您的venv目录中
然后运行pip安装-r requerients.txt
上面的答案是从这里改编的:Using Pip to install packages to Anaconda Environment
相关问题 更多 >
编程相关推荐