Python Pip安装在Virtualenv中工作,但*不*使用`-r requirements.txt`

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

我遇到了一个独特的版本,它是在和等答案中讨论过的、有很好文档记录的Virtualenv-Pip bug。在这些情况下,问题在于pip安装在全局文件夹中,在某些情况下是因为其中一个pip脚本中的shebang错误,在另一些情况下是因为
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

My
requirements.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
?添加my
requirements.txt
和完整的
pip
输出。当我手动安装其余的软件时,它们工作正常,并且位于正确的站点软件包区域。另外,我想澄清一下,你是说Ubuntu吗?