我的自制Python / pip试图在/ usr中安装二进制文件...为什么,我该如何解决?

时间:2015-02-05 15:01:28

标签: python pip homebrew

我正在运行OSX 10.10.2,以及最新的自制Python 2.7.9安装。由于某种原因 - 并且因为我很少在virtualenvs之外工作,并且最近没有创建任何东西,我不能说当这个改变了 - pip现在尝试将其二进制文件写入/usr而不是自制二进制前缀。下面是pip本身的pip升级输出,以及二进制文件的版本/路径。我可以在我的环境中添加任何可能有助于此的内容。

~/projects/ideas $ pip install -U pip
Collecting pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-6.0.8-py2.py3-none-any.whl#md5=41e73fae2c86ba2270ff51c1d86f7e09
  Using cached pip-6.0.8-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 6.0.6
    Uninstalling pip-6.0.6:
      Successfully uninstalled pip-6.0.6

  Rolling back uninstall of pip
  Exception:
  Traceback (most recent call last):
    File "/usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/basecommand.py", line 232, in main
      status = self.run(options, args)
    File "/usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/commands/install.py", line 347, in run
      root=options.root_path,
    File "/usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/req/req_set.py", line 549, in install
      **kwargs
    File "/usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/req/req_install.py", line 751, in install
      self.move_wheel_files(self.source_dir, root=root)
    File "/usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/req/req_install.py", line 960, in move_wheel_files
      isolated=self.isolated,
    File "/usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/wheel.py", line 344, in move_wheel_files
      generated.extend(maker.make(spec))
    File "/usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/_vendor/distlib/scripts.py", line 323, in make
      self._make_script(entry, filenames, options=options)
    File "/usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/_vendor/distlib/scripts.py", line 227, in _make_script
      self._write_script(scriptnames, shebang, script, filenames, ext)
    File "/usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/_vendor/distlib/scripts.py", line 201, in _write_script
      self._fileop.write_binary_file(outname, script_bytes)
    File "/usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/_vendor/distlib/util.py", line 388, in write_binary_file
      with open(path, 'wb') as f:
  IOError: [Errno 13] Permission denied: '/bin/pip'

~/projects/ideas $ which pip && pip --version
/usr/local/bin/pip
pip 6.0.6 from /usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg (python 2.7)

~/projects/ideas $ which python && python --version
/usr/local/bin/python
Python 2.7.9

1 个答案:

答案 0 :(得分:2)

这个问题的答案结果是~/.pydistutils.cfg的存在,由于尝试调整安装路径而导致其中包含此内容:

[install]
prefix=

这会将所有python包安装的前缀重写为''

因此,如果你的pip / setuptools开始做奇怪的事情,请先检查这个文件。