我处于共享系统站点程序包(在Python 3.5中使用venv
创建)的虚拟环境中,并且我想将给定requirements.txt中的所有程序包安装到该venv中。系统范围的python安装是只读的,因此我无法对其进行修改。
例如,现在,我的requirements.txt列出了许多其他信息,
SomePackage==2.0
(根据要求),而系统安装中已经包含SomePackage-1.0
。因此,Pip尝试卸载SomePackage-1.0
以升级到版本2.0。但是,此操作失败,因为系统级python安装是只读的。
如果安装的软件包的版本不同于所需的软件包,而只是将所需的版本安装到venv中,是否可以通过一种方式pip install -r requirements.txt
忽略已安装的软件包?
我想这类似于逐个安装每个软件包,并在每个软件包已经以不同于所需版本的版本存在时使用--ignore-installed
。但是,这似乎很麻烦。有更好的方法吗?
请注意,我正在使用带有共享系统站点软件包的venv,因为我希望避免在每次创建新的venv时安装多个大型软件包。因此,我不想切换到完全隔离的venv,这当然不会出现上述问题。
任何提示将不胜感激!非常感谢!
答案 0 :(得分:0)
要仅列出venv中项目所需的软件包,而不列出计算机中的所有全局软件包,请首先激活虚拟环境,并从(env) strong>运行pip freeze > requirements.txt
命令。
因此,您将严格列出指定项目所需的软件包。