【问题标题】:Why aren't the Python 2.7 command-line tools located in `/usr/local/bin` on Mac OS X?为什么 Python 2.7 命令行工具不在 Mac OS X 上的 `/usr/local/bin` 中?
【发布时间】:2010-07-16 14:41:48
【问题描述】:

Mac OS X (python-2.7-macosx10.5.dmg) 的 Python 2.7 安装程序磁盘映像指出:

安装程序将应用程序放在 Applications 文件夹中的“Python 2.7”中,将命令行工具放在 /usr/local/bin 中,将底层机制放在 /Library/Frameworks/Python.framework 中。

但是,安装后/usr/local/bin/ 中没有 Python 2.7 文件。

  • 其他人是否也有同样的行为?
  • 我认为解决方案只是创建与 Python 2.6 相同的 /usr/local/bin 的等效符号链接,还是我忽略了什么?

【问题讨论】:

  • 感谢您鼓励我安装 2.7,现在尝试。
  • 是的,这里看起来一样。 /usr/local/bin 中没有 python 2.7。我的路径中仍然有 python2.7,所以我不知道这是否是一个问题。
  • 我没有:zsh: command not found: python2.7
  • @Matthias:which python2.7 是什么?
  • 我在 /usr/local/bin 中有 2.7 链接,但我相信我必须在安装程序中明确选择该选项(“安装命令行工具”)。

标签: python macos installation


【解决方案1】:

适用于 OS X 的 python.org Python 安装程序是一个包含多个包的元包。在安装过程中,您可以通过单击Customize 按钮来查看软件包。 /usr/local/bin 中的符号链接由 UNIX command-line tools 包安装。对于 2.7 版本,默认情况下不再选择该软件包。您可以通过自定义安装并选择该软件包来安装它和符号链接;如果您已经安装了 2.7,请选择该软件包。

编辑:也就是说,重要的是要认识到,对于 OS X Python 框架构建,在搜索路径中仅包含 /usr/local/bin 通常是不够的。原因是包中包含的 python 脚本默认安装到 Python 目录的 bin 目录中,例如/Library/Frameworks/Python.framework/Versions/2.7/bin。对于使用Distutils 默认值或包装Distutils 的安装工具的任何东西都是如此,例如easy_installDistributesetuptools)或pip。这就是为什么有另一个安装程序包Shell profile updater,它默认启用并尝试修改您的登录配置文件以将框架bin 目录放在shell 搜索路径的前面,PATH。如果这样做了,/usr/local/bin 中的符号链接就不需要调用 python2.7

【讨论】:

  • Ned — 如果没有符号链接,我在尝试使用 Python 2.7 创建 virtualenv 时遇到错误,而 Python 2.6.5 被设置为我的默认安装(即,我有 PATH="/Library/ Frameworks/Python.framework/Versions/2.6/bin:${PATH}" 在我的~/.bash_profile 中用于 2.6 而不是 2.7)。现在符号链接已安装,我可以mkvirtualenv -p python2.7 foo27 使用 Python 2.7 创建一个 virtualenv。
  • 如果将 2.7/bin 添加到 PATH 的路径中,也应该可以解决问题。如果您希望默认的python 保留 python.org 2.6,那么您需要在 2.6 bin 之后插入 2.7/bin:`PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library /Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
【解决方案2】:

Steven Majewski's comment 声明“我相信我必须在安装程序中明确选择该选项(“安装命令行工具”)”让我觉得我忽略了安装程序中的某些内容。果然,我忽略了Customize 选项。见下文。

Optional Customize Python Install http://img.skitch.com/20100716-ede8ausmtch9cb6g4mqp4hcm84.jpg

Select UNIX Command-Line Tools http://img.skitch.com/20100716-817rjbyikr8c4y88xkfj6qeg1p.jpg

【讨论】:

  • 正如我在回复和 cmets 中所指出的,虽然使用 UNIX command-line tools 软件包安装 /usr/local/bin 链接没有任何问题(我同意默认情况下仍应安装它们) ,一旦您尝试安装 3rd-party 软件包,这样做并不足以正确安装 2.7。默认情况下,即使easy_install 本身最终也会在2.7/bin 目录中,而不是/usr/local/bin
【解决方案3】:
11:54 jsmith@upsidedown find /usr -name python2.7
11:54 jsmith@upsidedown

是的,这很糟糕。

我会遵循 Python 2.6(在我的例子中是 2.5)安装程序所做的模式,并创建符号链接(正如您所怀疑的那样)。至少模式保持不变:

11:57 jsmith@upsidedown /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Python 2.7 (r27:82508, Jul  3 2010, 21:12:11) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

可能值得针对安装程序进行错误报告。

【讨论】:

    猜你喜欢
    • 2015-02-03
    • 2019-01-06
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2014-09-13
    • 2014-01-06
    • 1970-01-01
    相关资源
    最近更新 更多