Pip不在Virtual Env中工作,但在外面完美工作

Roh*_*wal 2 python open-source portal pip virtualenv

Hello Guys我想跟随这里的安装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
Run Code Online (Sandbox Code Playgroud)

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

$ virtualenv venv1 --python=/usr/bin/python3
$ source venv/bin/activate
Run Code Online (Sandbox Code Playgroud)

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

$ pip install -r requirements/dev.txt
Run Code Online (Sandbox Code Playgroud)

甚至做

$pip --version
Run Code Online (Sandbox Code Playgroud)

我收到了错误

bash: /media/rohan/New Volume/portal/venv1/bin/pip: "/media/rohan/New: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

同样在/ venv1/bin中,存在文件pip,pip3,pip3.5

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

我还尝试使用代码创建虚拟环境

$virtualenv venv --python=/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

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

请帮忙

chu*_*ash 6

问题似乎是你的virtualenv的路径中有一个空间,它没有在它应该的地方被转义.

请注意您收到的错误:

/media/rohan/New: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

因此,在路径中使用该空间时,它会尝试在不存在/media/rohan/New的文件()上运行不存在的程序(Volume/portal/venv1/bin/pip).

重命名New Volume为没有空格的东西new_volume,然后重新创建virtualenv应该解决这个问题.

  • 不错的收获。我真的认为这个问题应该在 virtualenv 中修复。几十年来,Unix 开发人员/管理员一直在处理文件名/路径中的空格问题,但仍然存在[关于如何在 virtualenv 中处理它的争议](https://github.com/pypa/virtualenv/issues/53)。 (2认同)