【问题标题】:pip installs packages in Library/Python/2.7/binpip 在 Library/Python/2.7/bin 中安装包
【发布时间】:2020-01-07 21:55:11
【问题描述】:

我正在按照本教程安装virtualenvwrapper https://realpython.com/python-virtual-environments-a-primer/#managing-virtual-environments-with-virtualenvwrapper

但是,我就是无法正常工作。

当我执行pip install virtualenvwrapper --user 时,我收到以下警告。

Installing collected packages: virtualenv, pbr, six, stevedore, virtualenv-clone, virtualenvwrapper
  WARNING: The script virtualenv is installed in '/Users/user1/Library/Python/2.7/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script pbr is installed in '/Users/user1/Library/Python/2.7/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script virtualenv-clone is installed in '/Users/user1/Library/Python/2.7/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

所以我在.bash_profile 中添加了以下内容,现在它可以找到包了。

"/Users/user1/Library/Python/2.7/bin:$PATH"

但是我只是不明白为什么在我的环境中这个额外的步骤是必要的,而其他人似乎对直接安装到 /local/bin 的包没有问题。

这些是我的 python2 和 pip 没有符号链接的地方。

admins-MacBook-Pro:~ user1$ which python
/usr/bin/python
admins-MacBook-Pro:~ user1$ which pip
/usr/local/bin/pip

问题

  1. 为什么我的pip/Users/user1/Library/Python/2.7/bin 上安装东西,而大多数人似乎都可以使用/usr/local/bin/
  2. 有没有办法避免这个问题?如何干净地设置我的环境,以便所有软件包都安装在 /usr/local/bin 中?

【问题讨论】:

  • 您需要使用pip3(与您的其他问题一样)。 pip 指向 2.7。一旦通过初始设置,Virtualenvwrapper 就可以很好地工作。
  • @DaveStSomeWhere 抱歉没有解决问题。它只是将它安装在 3.7/bin

标签: python pip


【解决方案1】:

大多数人使用虚拟环境来维护不同版本的包。这样您的各种代码库就不会相互冲突。使用虚拟环境的第二个原因是为了不污染 Python 的系统安装。

添加 --user 标志将在用户级别而不是系统级别将包安装到 Python。如果您养成安装到用户级别的习惯,那么您将避免更新软件包版本时出现的问题 系统需要。

一旦您在虚拟环境中工作,那么您安装的任何东西都将在您的环境中。但是,virtualenv 的初始软件包安装必须安装在某个地方——在机器的用户级别上。

What is the purpose "pip install --user ..."?

我正在编辑答案。您不应使用 sudo 或尝试在系统级别安装。警告清楚地说明了 virtualenv 的安装位置以及需要添加到 PATH 中的目录。我建议您按照此处所述添加这些目录: https://apple.stackexchange.com/a/358873/249870

通过添加以下行来编辑您的 ~/.bash_profile 文件:
export PATH="/Users/user1/Library/Python/2.7/bin:$PATH"

接下来,在命令行中,获取文件:
$ source ~/.bash_profile

应该可以的。

【讨论】:

  • pip install virtualenvwrapper 不允许我运行命令。
  • 错误:无法安装由于EnvironmentError软件包:[错误13]权限被拒绝:“/lib/python2.7/site-packages/virtualenvwrapper-4.8.4-py3.7-nspkg。 pth' 考虑使用--user 选项或检查权限。
  • 嗯...有趣。我想 virtualenv 的人让你在系统级别安装是没有意义的。如果您真的真的很想这样做,也许可以尝试使用 sudo。这会让他们的脑袋爆炸。它有点违背了虚拟环境的目的之一——不污染你的系统级安装
  • 我正在尝试所有不同的组合..我将在另一个线程上发布它。如果你能帮助我,那就太好了。因为这个原因,我两天没能完成任何工作
  • 您确实帮助我继续使用上述解决方案。我非常感谢您的努力和帮助!感谢您的友好回答。
猜你喜欢
  • 2011-10-19
  • 2017-11-06
  • 2015-06-15
  • 2019-06-13
  • 2021-06-04
  • 2014-12-22
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
相关资源
最近更新 更多