Python Pip安装在Virtualenv中工作,但*不*使用`-r requirements.txt`
我遇到了一个独特的版本,它是在和等答案中讨论过的、有很好文档记录的Virtualenv-Pip bug。在这些情况下,问题在于pip安装在全局文件夹中,在某些情况下是因为其中一个pip脚本中的shebang错误,在另一些情况下是因为Python Pip安装在Virtualenv中工作,但*不*使用`-r requirements.txt`,python,pip,installation,virtualenv,requirements.txt,Python,Pip,Installation,Virtualenv,Requirements.txt,我遇到了一个独特的版本,它是在和等答案中讨论过的、有很好文档记录的Virtualenv-Pip bug。在这些情况下,问题在于pip安装在全局文件夹中,在某些情况下是因为其中一个pip脚本中的shebang错误,在另一些情况下是因为bin/activate脚本中的第42行错误,但它始终是全局安装的 我的问题不同:在我的虚拟环境中pip安装可以根据需要工作(在本地安装),但是pip安装-r requirements.txt安装到空中。例如: pip安装scipy 然后查看/home/user/so
bin/activate
脚本中的第42行错误,但它始终是全局安装的
我的问题不同:在我的虚拟环境中pip安装
可以根据需要工作(在本地安装),但是pip安装-r requirements.txt
安装到空中。例如:
pip安装scipy
然后查看/home/user/software/project/venv/lib/python3.6/site包的内容
我得到了以下结果:
easy_install.py
numpy
numpy-1.16.1.dist-info
pip
pip-19.0.2.dist-info
pkg_resources
__pycache__
scipy
scipy-1.2.1.dist-info
setuptools
setuptools-40.8.0.dist-info
wheel
wheel-0.33.0.dist-info
但是,在相同的虚拟环境中,我运行了pip install-r requirements.txt
,其中requirements.txt
要求安装numpy、Cython、sklearn、matplotlib和argparse,并输出:
Collecting Cython (from -r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/16/98/49aa24054e99e9c7734e49d6996662f547e4e2faae0051d35fbbc461afa4/Cython-0.29.5-cp36-cp36m-manylinux1_x86_64.whl (2.1MB)
100% |████████████████████████████████| 2.1MB 23.6MB/s
Collecting numpy (from -r requirements.txt (line 2))
Using cached https://files.pythonhosted.org/packages/f5/bf/4981bcbee43934f0adb8f764a1e70ab0ee5a448f6505bd04a87a2fda2a8b/numpy-1.16.1-cp36-cp36m-manylinux1_x86_64.whl
Collecting sklearn (from -r requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/1e/7a/dbb3be0ce9bd5c8b7e3d87328e79063f8b263b2b1bfa4774cb1147bfcd3f/sklearn-0.0.tar.gz
Collecting matplotlib (from -r requirements.txt (line 4))
Downloading https://files.pythonhosted.org/packages/71/07/16d781df15be30df4acfd536c479268f1208b2dfbc91e9ca5d92c9caf673/matplotlib-3.0.2-cp36-cp36m-manylinux1_x86_64.whl (12.9MB)
100% |████████████████████████████████| 12.9MB 6.3MB/s
Collecting argparse (from -r requirements.txt (line 5))
Downloading https://files.pythonhosted.org/packages/f2/94/3af39d34be01a24a6e65433d19e107099374224905f1e0cc6bbe1fd22a2f/argparse-1.4.0-py2.py3-none-any.whl
这导致本地站点包中没有新的添加内容。更重要的是,当我试图查看它们的安装位置时,在/usr/lib/python2.7
,/usr/local/lib/python2.7
,/usr/lib/python3
,/usr/lib/python3.6
,usr/lib/python3.7
,/.local/lib/python3.6/,或者~/.local/lib/python2.7/
要验证这一点,请在运行时执行以下操作:
find/usr/-name“Cython”
我得到一个空的结果
有什么建议吗?我可以编写一个bash脚本,直接调用pip install
,但这看起来太草率了,我觉得应该在它变得更糟之前修复它
注:
我的机器是在18.04.1上安装的,其中python3.6.7作为python3
和python2.7.15作为python2
作为机器默认安装,我安装了pip
用于sudo-apt-install-python-pip
和sudo-apt-install-python3-pip,这个虚拟环境是用virtualenv-p python3-venv
Myrequirements.txt
:
Cython
numpy
sklearn
matplotlib
torch>=0.4.1
torchvision>=0.2.1
argparse
quadprog
这是一个部分答案,但我至少解决了问题,即使我不完全理解原因。当我改变时:
virtualenv-p python3-venv
到
virtualenv-p/usr/lib/python3.6venv
pip安装-r requirements.txt
工作正常,生成了正确的站点包
同样,我也不知道这为什么有效,但它确实有效。我只是用另一个python版本再次尝试了一下,但运气不太好,所以我不完全确定这是否是一个通用的修复方法。当我有更好的解释时,我会编辑这个答案。你能把你的requirements.txt
添加到问题中吗?另外,除了收集之外,完整的pip
输出?添加你手动pip
安装其余部分时会发生什么Cython
、sklearn
、matplotlib
和argparse
?添加myrequirements.txt
和完整的pip
输出。当我手动安装其余的软件时,它们工作正常,并且位于正确的站点软件包区域。另外,我想澄清一下,你是说Ubuntu吗?