下面是我运行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$
发布于 2011-10-27 10:19:03
在没有空格的路径中创建您的virtualenv环境。这就是为什么它会发生:
当您创建环境时,它会设置一个bin
目录。在bin
目录中是与环境相关所有可执行文件。有些是脚本。正如您可能知道的,hashbang用于告诉系统使用哪个解释器来运行脚本。您可能经常在脚本的顶部看到以下内容:
#!/usr/bin/env python
如果脚本位于/tmp/test.py
,则通知系统运行此命令来执行脚本:
/usr/bin/env python /tmp/test.py
在您的示例中,virtualenv创建的脚本如下所示:
#!/tmp/oh no/bin/python
当系统尝试执行该命令时,它将尝试执行带有参数no/bin/python
和/tmp/test.py
的命令/tmp/oh
。/tmp/oh
不存在,因此失败。
发布于 2015-06-04 15:55:50
对于遇到这个问题的人,我发现路径的长度也会导致问题,不使用任何空格(Ubuntu 12.04):
virtualenv /home/user/some/very/longer/path/without/spaces/etc/venv
失败,而
virtualenv /home/user/some/very/long/path/without/spaces/etc/venv
工作得很好,看下面Alex的评论
发布于 2013-12-04 15:38:20
关于原因,icktoofay是正确的。
要在包含空格的目录中使用pip和virtualenv,请编辑/path/to/env/bin/pip
,将顶部的shebang替换为#!/usr/bin/env python
(如果您使用的是pypy,则替换为#!/usr/bin/env pypy
)。
请注意,virtualenv会更改您的环境,以便/usr/bin/env python
引用由virtualenv定义的python
。
https://stackoverflow.com/questions/7911003
复制相似问题