问题描述
我正在尝试在 OS X El Capitan 上pip install virtualenv
(和其他任何东西)并收到以下错误:
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/pip/basecommand.py", line 211, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/site-packages/pip/commands/install.py", line 311, in run
root=options.root_path,
File "/usr/local/lib/python2.7/site-packages/pip/req/req_set.py", line 646, in install
**kwargs
File "/usr/local/lib/python2.7/site-packages/pip/req/req_install.py", line 803, in install
self.move_wheel_files(self.source_dir, root=root)
File "/usr/local/lib/python2.7/site-packages/pip/req/req_install.py", line 998, in move_wheel_files
isolated=self.isolated,
File "/usr/local/lib/python2.7/site-packages/pip/wheel.py", line 339, in move_wheel_files
clobber(source, lib_dir, True)
File "/usr/local/lib/python2.7/site-packages/pip/wheel.py", line 282, in clobber
ensure_dir(dest) # common for the 'include' path
File "/usr/local/lib/python2.7/site-packages/pip/utils/__init__.py", line 71, in ensure_dir
os.makedirs(path)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 1] Operation not permitted: '/usr/lib/python2.7/site-packages'
看起来pip
正在尝试写入'/usr/lib/python2.7/site-packages'
,但由于 El Capitan 中的 SIP,它被拒绝了。
但我想知道为什么pip
需要写在那里?
我怎样才能解决这个问题?
我跑了brew doctor
这给
Your system is ready to brew.
所以我觉得没问题。
我试过brew reinstall python
,它给出了一个奇怪的错误:
==> Reinstalling python
Error: /usr/local/opt/python is not a valid keg
which python
给出
/usr/local/bin/python
所以系统中的哪个地方有这个让pip
失败的奇怪东西
更新:
看起来我的pip
指向系统 python 而不是 brewed python。
我将 pip 的第一行更改为
#!/usr/local/bin/python
问题解决了
1楼
您可能需要brew link python
,或unlink
然后link
以使事物指向正确的位置。