trouble with PIP and virtualenv [duplicate]

2019-05-23 16:22发布

This question already has an answer here:

Whenever i create a folder on my desktop and run "virtualenv venv" on terminal, everything works fine. However when i try to create a folder in my "documents" folder and run "virtualenv venv" i get this error below? any suggestions why?

Andrews-MacBook-Pro:Python Virtualenv AndrewParkPhotography$ cd myproject
Andrews-MacBook-Pro:myproject AndrewParkPhotography$ ls
Andrews-MacBook-Pro:myproject AndrewParkPhotography$ virtualenv venv
New python executable in venv/bin/python
Installing setuptools............done.
Installing pip...
  Error [Errno 2] No such file or directory while executing command /Users/AndrewParkPho...env/bin/easy_install /Library/Python/2.7/...pport/pip-1.1.tar.gz
...Installing pip...done.
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 8, in <module>
    load_entry_point('virtualenv==1.7.1.2', 'console_scripts', 'virtualenv')()
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 928, in main
    never_download=options.never_download)
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 1042, in create_environment
    install_pip(py_executable, search_dirs=search_dirs, never_download=never_download)
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 640, in install_pip
    filter_stdout=_filter_setup)
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 966, in call_subprocess
    cwd=cwd, env=env)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 672, in __init__
    errread, errwrite)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1202, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

1条回答
唯我独甜
2楼-- · 2019-05-23 16:50

Found answer here (Can't install via pip with Virtualenv)

create your virtualenv environment within a path without spaces. This is why it is happening:

When you create an environment, it sets up a bin directory. In that bin directory are all the executables relating to the environment. Some are scripts. As you may know, hashbangs are used to tell the system what interpreter to use to run the script. You may see this at the top of scripts often:

#!/usr/bin/env python

If the script is at /tmp/test.py, that tells the system to run this command to execute the script:

/usr/bin/env python /tmp/test.py

In your case, virtualenv is creating scripts like this:

#!/tmp/oh no/bin/python

When the system tries to execute that, it will try to execute the command /tmp/oh with the arguments no/bin/python and /tmp/test.py. /tmp/oh does not exist, so it fails

查看更多
登录 后发表回答