以下是我运行时遇到的错误pip:
serkan$ rm -r mysite
serkan$ pwd
/Users/serkan/Desktop/Python Folder
serkan$ virtualenv mysite
New python executable in mysite/bin/python
Installing setuptools............done.
Installing pip...............done.
serkan$ source mysite/bin/activate
(mysite)serkan$ pip install pinax
-bash: /Users/serkan/Desktop/Python Folder/mysite/bin/pip: "/Users/serkan/Desktop/Python: bad interpreter: No such file or directory
(mysite)serkan$ python pip install pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip install Pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip install Pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip install Pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ pip
-bash: /Users/serkan/Desktop/Python Folder/mysite/bin/pip: "/Users/serkan/Desktop/Python: bad interpreter: No such file or directory
(mysite)serkan$ pip install Pinax
-bash: /Users/serkan/Desktop/Python Folder/mysite/bin/pip: "/Users/serkan/Desktop/Python: bad interpreter: No such file or directory
(mysite)serkan$
Run Code Online (Sandbox Code Playgroud)
ick*_*fay 124
在没有空格的路径中创建virtualenv环境.这就是它发生的原因:
创建环境时,它会设置bin目录.在该bin目录中是与环境相关的所有可执行文件.有些是脚本.您可能知道,hashbang用于告诉系统使用哪个解释器来运行脚本.您可能经常在脚本的顶部看到这个:
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
如果脚本处于/tmp/test.py,则告诉系统运行此命令以执行脚本:
/usr/bin/env python /tmp/test.py
Run Code Online (Sandbox Code Playgroud)
在你的情况下,virtualenv正在创建这样的脚本:
#!/tmp/oh no/bin/python
Run Code Online (Sandbox Code Playgroud)
当系统尝试执行该操作时,它将尝试/tmp/oh使用参数no/bin/python和执行命令/tmp/test.py./tmp/oh不存在,所以它失败了.
Hed*_*ide 21
对于遇到这个问题的人,我发现路径的长度也可能导致问题,而不使用任何空格(Ubuntu 12.04):
virtualenv /home/user/some/very/longer/path/without/spaces/etc/venv
Run Code Online (Sandbox Code Playgroud)
失败了,而
virtualenv /home/user/some/very/long/path/without/spaces/etc/venv
Run Code Online (Sandbox Code Playgroud)
工作得很好,请参阅Alex的评论如下
Moh*_*f C 19
pip 命令将无法工作如果:
pip在Ubuntu上安装,请使用命令sudo apt-get install python-pip或sudo apt-get install python3-pip)如果由于某种原因无法重命名文件夹或更改路径,请转到yourvirtualenvfolder/bin(使用cd命令)然后尝试./python pip install packagename.
Bry*_*ead 14
icktoofay关于原因是正确的.
要在带有空格的目录中使用带有virtualenv的pip,编辑/path/to/env/bin/pip,替换顶部的shebang #!/usr/bin/env python(或者#!/usr/bin/env pypy如果你使用的是pypy).
请注意,virtualenv会改变您的环境,以/usr/bin/env python引用pythonvirtualenv定义的环境.