【问题标题】:PythonPath and Python Config ScriptsPythonPath 和 Python 配置脚本
【发布时间】:2016-03-14 02:47:36
【问题描述】:

我需要一些重要的帮助并且有点害怕,因为我不想弄乱我的电脑!我在运行 OSX 10.10.5 的 Macbook Air 上。所以我正在关注一个教程来帮助我学习 Django。教程不重要。重要的是,在执行此操作时,我将 $PYTHONPATH 更改为:

导出 PYTHONPATH=$PYTHONPATH:/usr/local/bin/../../../Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

然后我被自制警告吓到了:

警告:“config”脚本存在于您的系统或 Homebrew 目录之外。 ./configure 脚本经常寻找 *-config 脚本来确定是否 软件包已安装,以及何时使用哪些附加标志 编译和链接。

在您的路径中包含其他脚本可能会混淆通过以下方式安装的软件 Homebrew 如果配置脚本覆盖系统或 Homebrew 提供 同名脚本。我们发现了以下“配置”脚本: /Library/Frameworks/Python.framework/Versions/2.7/bin/python-config /Library/Frameworks/Python.framework/Versions/2.7/bin/python2-config /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config

警告:您的 XQuartz (2.7.7) 已过时 请安装 XQuartz 2.7.8: https://xquartz.macosforge.org

警告:Python 安装在 /Library/Frameworks/Python.framework

Homebrew 仅支持针对系统提供的 Python 或 酿造 Python。特别是,安装到 /Library 的 Python 可能会干扰 与其他软件一起安装。

我害怕我把事情搞砸了,因为两件事首先是与配置脚本有关的消息,然后是这个:

警告:Python 安装在 /Library/Frameworks/Python.framework

Homebrew 仅支持针对系统提供的 Python 或 酿造 Python。特别是,安装到 /Library 的 Python 可能会干扰 与其他软件安装。

我进行了研究,以下是我找到的链接:

Repairing mysterious Python config scripts outside of the system

https://stackoverflow.com/questions/34030890/homebrew-warnings-additional-config-scripts-in-python

第一个说要清理我的路径,但我不知道该怎么做,第二个没有答案。

任何帮助将不胜感激,因为我不想使用我的电脑,直到我可以确保一切都得到修复!

编辑:使用 export $PATH = /usr/local/bin 会解决我的问题吗?我是从这个链接得到的:https://apple.stackexchange.com/questions/96308/python-installation-messed-up

【问题讨论】:

  • 您在哪里(以及为什么)收到建议将 PYTHONPATH 更改为包含 /usr/local/bin/../../../Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages?另请注意,这减少到/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages,所以这个建议对我来说似乎有点缺陷(如果你从根目录上升 3 级,然后再下降 3 级,那么创建相对路径是没有用的)。
  • 我问的原因是,如果你想使用 Homebrew Python,不要设置指向别处的 PYTHONPATH。如果您想使用系统 Python,请不要使用 Homebrew。如果您想将 Homebrew Python 与系统安装的库一起使用,那么不要:为 Homebrew Python 重新安装这些库。
  • @Evert 我想我将停止在我的系统上使用 Python,因为我之前遇到过其他 Python 安装问题。你能告诉我应该将我的 $PATH 和 $PYTHONPATH 指向什么吗?如果我需要清除它,我该怎么做?

标签: python macos python-2.7 pythonpath


【解决方案1】:

根据我的第二条评论:您的 PATH 和 PYTHONPATH 取决于您使用的内容。如果您为正在使用的特定 Python 安装必要的包(例如,使用互补的 pip),则不必需要 PYTHONPATH;如果它不在 PATH 上,您可以修改 PATH 以包含该 Python 可执行文件。

例如,我使用 Homebrew Python。我的默认 PATH 已经包含 /usr/local/bin,并且我使用 /usr/local/bin/pip 为该特定 Python 安装包。不需要 PYTHONPATH,如果我确保使用 /usr/local/bin/python,一切正常。

这个问题是/usr/bin/python 可能比/usr/local/bin/python 更早地在您的PATH 中找到。那会引起问题。使用完整路径 /usr/local/bin/python 或设置别名(键入时更短)。

事实上,这样我在/usr/local/bin 中运行Python 2.7、3.4 和3.5,都带有别名。我仍然在/usr/bin/python 有我的系统 Python 用于系统脚本。 (多个版本的棘手部分是 pip:我制作了 pip 的多个副本,每个副本的名称不同,每个副本的第一行都有不同的 hash-bang。或者,我可以运行 /usr/local/bin/pythonx.y /usr/local/bin/pip 并且正确的 pip 是用过。)


简而言之:

  • 未设置 PYTHONPATH
  • 确保 /usr/local/bin 包含在 PATH 中,但不必将其设置在 PATH 的前面
  • 删除 Homebrew Python

以下取决于您是否要使用 Homebrew:

  • 如果您想使用最新的 Python 版本,请(重新)安装带有 Homebrew 的 Python 2(和 3;试一试)。
  • 如有必要,为/usr/local/bin/python2.7 和对应的pip 设置别名。 (同上 Python 3。)
  • 安装所有 pip 包。或者,如果您使用 setup.py,则使用适当的 Python 可执行文件。

如果您喜欢使用类似的东西,例如 Anaconda Python。

如果您尝试安装一些二进制包(例如,通过安装程序),您一定会搞砸。不要这样做,使用适当的点子。

【讨论】:

  • 好吧,我希望我明白你认为我应该做什么。我仍然很了解这一点,所以我可能需要一些额外的指导。首先,我不知道如何取消设置 PYTHONPATH。我认为我应该将其导出并使其等于什么。我现在知道如何访问我的路径,但我不知道如何正确包含 /usr/local/bin。非常感谢@Evert 的帮助!
  • 在发布我的问题之前,我使用了 python.org 网站上的安装程序,这可能会使过程复杂化。
  • 你的 PYTHONPATH 是,afaik,从不默认设置。因此,您可能应该注释掉在您的登录点文件之一中设置的行。否则,您可以use unset
  • 我从未使用过 python.org 安装程序,所以我不确定它是什么或如何安装的。危险是(如您的案例所示),当某些东西似乎丢失时,一个人开始通过另一个包安装东西,并且在您知道之前,您有一个奇怪的混合 Apple 的 Python 安装,来自 python.org 的安装程序的 MacPython(旧名称)和自制 Python。扔进 Conda 的 Python 就搞定了。我发现 Homebrew 对我来说工作得很好,其他人可能会建议使用 Conda,因为它也安装了 C 库依赖项。只是避免混合它们。
猜你喜欢
  • 2011-03-07
  • 2012-10-11
  • 1970-01-01
  • 2011-12-17
  • 2017-05-03
  • 2021-05-27
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
相关资源
最近更新 更多