Pip 不能在 Virtual Env 内部工作,但可以在外部完美工作

Pip not working inside Virtual Env but works outside perfectly

大家好,我想按照这里的安装 https://github.com/systers/portal 尝试在我的机器上的虚拟环境中部署服务器。 在出现很多错误后,我决定安装 Ubuntu 16.04 的新副本并开始 安装后这里是我使用给定命令安装的东西

我分别使用 python --version 和 python3--version 检查了我当前的 python 和 python3 版本,它们是 Python 2.7.12 和 Python 3.5.2 分别。

Easy Install. $ sudo apt-get install python-setuptools python-dev build-essential  
pip. $ sudo easy_install pip
virtualenv. $ sudo pip install --upgrade virtualenv.
python3-dev tools.$sudo apt-get install python3-dev

之后我创建了一个虚拟环境并使用以下命令激活了它

$ virtualenv venv1 --python=/usr/bin/python3
$ source venv/bin/activate

但是现在当我运行第三条命令时

$ pip install -r requirements/dev.txt

甚至

$pip --version

我收到错误

bash: /media/rohan/New Volume/portal/venv1/bin/pip: "/media/rohan/New: bad interpreter: No such file or directory

/venv1/bin 中还存在文件 pip、pip3、pip3.5

我试过 sudo easy_install pip 认为它会在虚拟环境中安装 pip 但它安装到 /usr/local/bin

我也尝试使用代码

创建一个虚拟环境
$virtualenv venv --python=/usr/bin/python

但这也不起作用,这次也出现了同样的错误,在 /venv/bin pip pip2 pip2.7 中存在

请帮忙

问题似乎是你的 virtualenv 的路径中有一个 space 没有被转义到它应该在的地方。

注意您收到的错误:

/media/rohan/New: bad interpreter: No such file or directory

所以在路径中 space,它试图 运行 一个不存在的程序 (/media/rohan/New) 在一个不存在的文件 (Volume/portal/venv1/bin/pip).

New Volume 重命名为没有 space 的名称,例如 new_volume,然后重新创建 virtualenv 应该可以解决此问题。

我重命名了虚拟环境的文件夹,所以我收到了这个错误。 然后我将 venv 文件夹名称重命名为错误中提到的路径(这是我在创建 venv 时命名的那个。)然后尝试使用 pip 并且成功了。

可能您已经解决了您的问题,但这是为未来的访客准备的。