我在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环境放在没有空间的路径上”,
但带有空格的部分就是卷本身。我的所有路径都有空格,除非我将它们存储在/
的目录中。我不认为“将你的东西存放在用户空间之外”是一个很好的解决方案。
有更好的解决方案吗?
答案 0 :(得分:34)
试试这个:
bin/activate
,更改VIRTUAL_ENV='/Volumes/Macintosh HD/Python/my_project'
,然后更改PATH="$VIRTUAL_ENV/bin:$PATH"
,使其在您的环境中正常运行。使用echo $PATH
检查它是否有效。修改bin/pip
和bin/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年底,最新版本的pip
和virtualenv
正确处理了venv目录中的空格。
请参见https://github.com/pypa/virtualenv/issues/53#issuecomment-434461292。