在路径中使用virtualenv和空格

red*_*_hp 49 python macos pip virtualenv

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

/Volumes/Macintosh: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我跟踪问题到路径中有一个空格,如下所示:https://stackoverflow.com/a/10873611/126564
(路径正在/Volumes/Macintosh HD/Python/my_project)

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

"只是把你的虚拟环境置于一条没有空间的道路上,"

但是具有空间的部分是体积本身.我的所有路径都有一个空格,除非我将它们存储在一个目录中/.我不认为"将您的东西存储在用户空间之外"是一个很好的解决方案.

有更好的解决方案吗?

Vin*_*Wen 36

试试这个:

  • 编辑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).

  • 把它们变成什么? (18认同)
  • 如果我知道要改变什么,我就不会问这个问题. (8认同)
  • @NicolasBouliane在空间之前添加了一个反斜杠.所以在这种情况下,只需将`VIRTUAL_ENV ='/ Volumes/Macintosh HD/Python/my_project'改为`VIRTUAL_ENV ='/ Volumes/Macintosh\HD/Python/my_project'. (4认同)
  • 在完成上述修复之后,现在我的virtualenv指向了'virtualenv -p`指定的错误的python安装 (3认同)
  • 你也可以使用`sed -i'/ ^#!/ s @".*/\([^ /]\+ \)"@/usr/bin/env\1 @'env/bin/*` (2认同)
  • 这个问题可能解决了这个问题,但我坦率地不理解这些说明.将PATH更改为*what*?为什么? (2认同)

Ole*_*rov 16

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

virtualenv /tmp/temporary_virtualenv
virtualenv /home/my_envs/env_for_projectname
Run Code Online (Sandbox Code Playgroud)


Tup*_*teq 10

我还有另一个解决方法 - 你只需要使用pip 而不是pip 脚本.例如:

python -m pip install .
Run Code Online (Sandbox Code Playgroud)

甚至:

python -m pip install -U pip
Run Code Online (Sandbox Code Playgroud)

对我来说,它就像一个魅力,不需要更改文件.


Lea*_*ima 5

编辑bin/activate文件并转义空间对我有用.编辑并保存文件,然后运行source bin/activate.