运行 virtualenv 时错误 13 权限被拒绝
Errno 13 Permission denied when running virtualenv
当尝试在 Mac OS X 上使用 brew 安装的 Python 2.7 创建 virtualenv 时,我收到以下错误:
Could not install packages due to an EnvironmentError:
[Errno 13] Permission denied: '/lib'
完整输出:
▶ virtualenv ./virtualenv
New python executable in /Users/alexharvey/git/home/sam-test/virtualenv/bin/python2.7
Also creating executable in /Users/alexharvey/git/home/sam-test/virtualenv/bin/python
Installing setuptools, pip, wheel...
Complete output from command /Users/alexharvey/gi...ualenv/bin/python2.7 - setuptools pip wheel:
Looking in links: /usr/local/lib/python2.7/site-packages, /usr/local/lib/python2.7/site-packages/virtualenv_support, /usr/local/lib/python2.7/site-packages/virtualen
v_support
Collecting setuptools
Using cached https://files.pythonhosted.org/packages/37/06/754589caf971b0d2d48f151c2586f62902d93dc908e2fd9b9b9f6aa3c9dd/setuptools-40.6.3-py2.py3-none-any.whl
Collecting pip
Collecting wheel
Using cached https://files.pythonhosted.org/packages/ff/47/1dfa4795e24fd6f93d5d58602dd716c3f101cfd5a77cd9acbe519b44a0a9/wheel-0.32.3-py2.py3-none-any.whl
Installing collected packages: setuptools, pip, wheel
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/lib'
Consider using the `--user` option or check the permissions.
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 762, in main
symlink=options.symlink,
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 1015, in create_environment
install_wheel(to_install, py_executable, search_dirs, download=download)
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 968, in install_wheel
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 854, in call_subprocess
raise OSError("Command {} failed with error code {}".format(cmd_desc, proc.returncode))
OSError: Command /Users/alexharvey/gi...ualenv/bin/python2.7 - setuptools pip wheel failed with error code 1
我看到像这样的问题以前在这里经常被问到(例如 here),但赞成的答案似乎建议使用 sudo
,这显然是错误的。
请注意,我已遵循此页面上的建议:Using python effectively on Mac OS X。
我该如何解决这个问题(不使用 sudo)?
将任何东西安装到全局 /lib
显然需要 root 权限。
您可以在不使用 sudo
的情况下将模块安装到用户的文件夹中,只需在安装任何包时添加 --user
参数即可。
如评论中所述,自定义 Distutils 配置文件存在问题。该文件显然可以位于以下三个位置之一 (ref):
- 系统:
<prefix>/lib/pythonver/distutils/distutils.cfg
- 个人:
$HOME/.pydistutils.cfg
- 本地:
setup.cfg
我同时根据这个 SO answer here 创建了一个 setup.cfg
内容:
[install]
prefix=
我不记得我为什么要咨询那个答案,或者为什么我把那个文件放在那里,但是在我删除它之后,virtualenv 又可以正常工作了,我再也没有遇到任何问题了。
当尝试在 Mac OS X 上使用 brew 安装的 Python 2.7 创建 virtualenv 时,我收到以下错误:
Could not install packages due to an EnvironmentError:
[Errno 13] Permission denied: '/lib'
完整输出:
▶ virtualenv ./virtualenv
New python executable in /Users/alexharvey/git/home/sam-test/virtualenv/bin/python2.7
Also creating executable in /Users/alexharvey/git/home/sam-test/virtualenv/bin/python
Installing setuptools, pip, wheel...
Complete output from command /Users/alexharvey/gi...ualenv/bin/python2.7 - setuptools pip wheel:
Looking in links: /usr/local/lib/python2.7/site-packages, /usr/local/lib/python2.7/site-packages/virtualenv_support, /usr/local/lib/python2.7/site-packages/virtualen
v_support
Collecting setuptools
Using cached https://files.pythonhosted.org/packages/37/06/754589caf971b0d2d48f151c2586f62902d93dc908e2fd9b9b9f6aa3c9dd/setuptools-40.6.3-py2.py3-none-any.whl
Collecting pip
Collecting wheel
Using cached https://files.pythonhosted.org/packages/ff/47/1dfa4795e24fd6f93d5d58602dd716c3f101cfd5a77cd9acbe519b44a0a9/wheel-0.32.3-py2.py3-none-any.whl
Installing collected packages: setuptools, pip, wheel
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/lib'
Consider using the `--user` option or check the permissions.
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 762, in main
symlink=options.symlink,
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 1015, in create_environment
install_wheel(to_install, py_executable, search_dirs, download=download)
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 968, in install_wheel
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 854, in call_subprocess
raise OSError("Command {} failed with error code {}".format(cmd_desc, proc.returncode))
OSError: Command /Users/alexharvey/gi...ualenv/bin/python2.7 - setuptools pip wheel failed with error code 1
我看到像这样的问题以前在这里经常被问到(例如 here),但赞成的答案似乎建议使用 sudo
,这显然是错误的。
请注意,我已遵循此页面上的建议:Using python effectively on Mac OS X。
我该如何解决这个问题(不使用 sudo)?
将任何东西安装到全局 /lib
显然需要 root 权限。
您可以在不使用 sudo
的情况下将模块安装到用户的文件夹中,只需在安装任何包时添加 --user
参数即可。
如评论中所述,自定义 Distutils 配置文件存在问题。该文件显然可以位于以下三个位置之一 (ref):
- 系统:
<prefix>/lib/pythonver/distutils/distutils.cfg
- 个人:
$HOME/.pydistutils.cfg
- 本地:
setup.cfg
我同时根据这个 SO answer here 创建了一个 setup.cfg
内容:
[install]
prefix=
我不记得我为什么要咨询那个答案,或者为什么我把那个文件放在那里,但是在我删除它之后,virtualenv 又可以正常工作了,我再也没有遇到任何问题了。