在路径中使用virtualenv和空格

时间:2013-03-18 08:28:04

标签: python macos virtualenv pip

我在Mac上设置了virtualenv环境,但无法让Pip安装软件包。它失败并出现以下错误:

/Volumes/Macintosh: bad interpreter: No such file or directory

我将问题追踪到路径中有一个空间,如下所示:https://stackoverflow.com/a/10873611/126564
(路径为/Volumes/Macintosh HD/Python/my_project

但这有点问题。建议的解决方案是:

  

“只是把你的virtualenv环境放在没有空间的路径上”,

带有空格的部分就是卷本身。我的所有路径都有空格,除非我将它们存储在/的目录中。我不认为“将你的东西存放在用户空间之外”是一个很好的解决方案。

有更好的解决方案吗?

6 个答案:

答案 0 :(得分:34)

试试这个:

  • 修改bin/activate,更改VIRTUAL_ENV='/Volumes/Macintosh HD/Python/my_project',然后更改PATH="$VIRTUAL_ENV/bin:$PATH",使其在您的环境中正常运行。使用echo $PATH检查它是否有效。
  • 修改bin/pipbin/easy_install,将两个文件中的第一行更改为

    #!/usr/bin/env python

经过以上2个步骤,你将使你的virtualenv工作(也是pip / easy_install)。

答案 1 :(得分:17)

请注意,您不必将项目文件夹用于virtualenv。例如,您可以将virtualenv放入 / tmp 文件夹或任何其他没有空格的文件夹中:

virtualenv /tmp/temporary_virtualenv
virtualenv /home/my_envs/env_for_projectname

答案 2 :(得分:10)

我还有另一种解决方法 - 您只需使用pip 而不是pip 脚本。例如:

python -m pip install .

甚至:

python -m pip install -U pip

对我而言,它就像一个魅力,不需要更改文件。

答案 3 :(得分:5)

编辑bin/activate文件并转义为我工作的空间。 编辑并保存文件,然后运行source bin/activate

答案 4 :(得分:3)

Unless you have an atypical drive setup on your Mac, the path /Volumes/Macintosh HD should be a symlink to /. In other words, instead of

$ virtualenv /Volumes/Macintosh\ HD/venvpath

you can just do

$ virtualenv /venvpath

Not that I'm trying to condone software not handling spaces in file names. I agree with Hugo's comment above: keep an eye on the relevant GitHub issue.

答案 5 :(得分:2)

截至2018年底,最新版本的pipvirtualenv正确处理了venv目录中的空格。

请参见https://github.com/pypa/virtualenv/issues/53#issuecomment-434461292