Python:pip尝试安装到/bin目录

5

我使用 brew install python 安装了Python。

which pip
/usr/local/bin/pip

我的PYTHONPATH显示为/usr/local/lib/python2.7/site-packages/

然而,当我尝试使用pip安装一些东西时,它会去到如下所示的/bin/目录。我希望安装到/usr/local/lib/python2.7/site-packages/中。我该如何解决这个问题?

pip install virtualenv
Downloading/unpacking virtualenv
  Downloading virtualenv-1.11.6-py2.py3-none-any.whl (1.6MB): 1.6MB downloaded
Installing collected packages: virtualenv
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/commands/install.py", line 283, in run
{....}
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/_vendor/distlib/util.py", line 384, in write_binary_file
    with open(path, 'wb') as f:
IOError: [Errno 13] Permission denied: '/bin/virtualenv'



$ pip list
pip (1.5.6)
setuptools (5.4.2)
wsgiref (0.1.2)


$pip show setuptools
---
Name: setuptools
Version: 5.4.2
Location: /usr/local/lib/python2.7/site-packages/setuptools-5.4.2-py2.7.egg
Requires:

pip已经将基本包安装到site-packages中。然而,运行完全相同的pip以安装virtualenv会尝试安装到/bin/。


1
/bin/virtualenv是一个用于创建Python虚拟环境的程序。因此,它需要位于/bin、/usr/bin或其他bash可以找到该可执行文件的位置。 - Marcin
好的,如果那是它应该在的地方,我会让它去/bin/virtualenv/。但现在我尝试使用pip(pip install flask)安装flask,它将其安装到/lib/python2.7/site-packages/,而不是/usr/bin/etc....当我执行另一个pip list时,它只显示上面的内容。对于sudo pip install flask和之后的pip list也是一样。没有出现flask。 - imagineerThat
你可以检查一下 brew doctor 的输出,并将所有与 Python 相关的内容添加到你的问题中吗? - cel
2个回答

6

在尝试安装 virtualenv 和 flask 时,我遇到了同样的问题。事实证明,我的家目录下有一个 .pydistutils.cfg 文件。我记得不久前我放置了这个文件以解决安装其他某些东西的问题。一旦我移除了这个文件,运行 pip install 就像预期的那样继续工作。


2

对我来说,有一个包含以下代码的setup.cfg文件

[install]
prefix=

删除该文件后问题得到解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接