gpt4 book ai didi

PYTHONPATH 干扰 virtualenv

转载 作者:太空宇宙 更新时间:2023-11-03 18:02:03 27 4
gpt4 key购买 nike

我使用的是 Mac OSX 10.10.1。我通常使用brew或pip来安装所有东西。我注意到我的 virtualenv 总是抓取我本地安装的所有 Python 包。我通过删除我的 $PYTHONPATH 解决了这个问题我的变量 ~/.zshrc配置文件。这解决了 virtualenv 抓取我所有 Python 包的问题,​​但随后 IPython 无法找到位于 /usr/local/lib/python2.7/site-packages 中的内容。 。我最终找到了一种通过更改 /usr/local/bin/ipython 中的 hashbang 行来解决 IPython 问题的方法。至#!/usr/local/bin/ipython ,如 this 中的建议所以帖子。据我所知,现在一切正常。

我的问题:

  1. 最好将所有内容安装到 /Library/Python/2.7/site-packages 中吗? ?或者将一半的东西放在 /usr/local/lib/python2.7/site-packages 中会更好吗? ?以这种方式分开包裹似乎是一种精神 split 。

  2. 我通过 a) 删除我个人定义的 $PYTHONPATH 做对了吗?变量,以及 b) 将 hashbang 从 #!/usr/bin/ipython 更改为至#!/usr/local/bin/ipython/usr/local/bin/ipython文件?我的$PYTHONPATH变量被设置为 export PYTHONPATH="/usr/local/lib/python2.7/site-packages/":${PATH}~/.zshrc配置文件。

最佳答案

  1. 最好尽可能在 virtualenv 中安装软件包(对于您正在处理的应用程序或项目)。这使依赖项保持独立,因此您应该只在适当的时候全局安装东西(但通常不是因为依赖项特定于项目)。

    但是回答你的问题:确实有可能某些依赖项是系统范围的,而其他依赖项则位于 virtualenv 中。让系统范围的 Python、用户 Python 和 virtualenv Python 一起工作有点奇怪,但这是可以做到的。尽量避免将依赖项分散到各处,因为这很难维护。将brew/pip 结合起来也会引发灾难,因为它们并不总是相互了解,而且确实会互相干扰。我使用 MacPorts(或 Homebrew)来安装非 Python 依赖项,并使用 Python 解释器安装和 pip 来安装所有 Python 包。

  2. 这听起来不对:您不必编辑文件的 hashbang(当然,除非作为发布时存在错误的包的解决方法)。更新 PYTHONPATH 变量是正常的,因为许多人在其 shell 配置文件中进行了此类修改。您对文件的编辑是不可持续的,因为升级或其他更改可能会再次破坏。如果您使用的是正确打包的版本,则不必指向另一个 Python 解释器。

关于PYTHONPATH 干扰 virtualenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27536830/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com