首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python系统配置

Python系统配置
EN

Stack Overflow用户
提问于 2017-07-31 20:47:51
回答 2查看 884关注 0票数 1

tldr:如何在Mac上安装Python?甚至在我开始破坏它之前,还会有大量毫无意义的复制发生吗?

我希望得到一些关于Mac上Python系统架构的指导(也许答案与操作系统无关,但为了安全起见,我认为它不是)。

我可以运行各种命令,这些命令似乎为我提供了多个Python二进制文件。事实上,也许还有更多--这正是我到目前为止所遇到的。

  1. ls /usr/local/bin/ | grep 'python\|pyd'

pydoc pydoc2 pydoc2.7 python python-32 python-config python2 python2-32 python2-config python2.7 python2.7-32 python2.7-config pythonw pythonw-32 pythonw2 pythonw2-32 pythonw2.7 pythonw2.7-32

  1. ls /usr/bin | grep 'python\|pyd'

pydoc pydoc2.6 pydoc2.7 python python-config python2.6 python2.6-config python2.7 python2.7-config pythonw pythonw2.6 pythonw2.7

  1. ls /Library/Frameworks/Python.framework/Versions/

2.7 Current

  1. ls /System/Library/Frameworks/Python.framework/Versions/

2.3 2.5 2.6 2.7 Current

至于在执行.py时运行哪一个;当我运行which python时,返回

/Library/Frameworks/Python.framework/Versions/2.7/bin/python

当我使用REPL时,这似乎是一致的。与此安装相关的site-packages是可用的(不是我修补了其他站点包的位置)

我还没有对我的Mac上的python环境做过任何认真的修改,所以我假设这是免费提供给用户的。如果有人知道这些二进制文件是如何组合在一起的,为什么它们都存在,请告诉我。如果答案是RTM,请简单地指向一个页面,因为https://docs.python.org/2/using/mac.html是不够的。

谢谢你让我更聪明!

规格: Mac : 10.12.5

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-01 03:04:08

要回答您更广泛的问题:为什么Python有各种不同的可执行文件,

  • python是Python可执行的基本命令行接口。
  • pythonw的存在是为了运行“无头”Python程序,而不提供终端输出。对于不应该打开控制台窗口的基于GUI的Python程序,这种不同的可执行文件尤其是必要的,因此它的名称。
  • python-config脚本的存在只是为了向那些试图针对特定的Python二进制文件进行编译或链接的程序提供配置信息,例如在创建.pyd扩展模块时(我相信,在OSX上创建.pyd文件)。
  • pydoc从Python文件中提取文档信息,例如从与特定类和函数关联的docstring中提取文档信息。

关于pythonpythonw差异的更多信息:https://stackoverflow.com/a/30313091/1234300

除此之外,您还有一些专门标记为python-32等的版本。这些版本将是32位版本,而64位版本可能是您系统上的其他版本。有时,您可能希望使用32位版本的Python,因为您希望链接到其他32位代码,包括Python扩展或其他共享库。

票数 0
EN

Stack Overflow用户

发布于 2017-08-01 02:16:26

免责声明:我对现代macOS知之甚少。

/System/Library/Frameworks/Python.framework/Versions/2.*/下的所有文件似乎都是相同的文件。也就是说,下面显示了3个相同的校验和:

代码语言:javascript
复制
md5 /System/Library/Frameworks/Python.framework/Versions/2.{3,5,6}/bin/python

我认为它适用于macOS应用程序,这些应用程序假定有特定的早期Python版本可用。他们都得到了同样的2.6.9,也就是2.6的最后一个版本。2.x/lib都包含带有.py*文件的python2.6子目录,这似乎也是相同的:

代码语言:javascript
复制
md5 /System/Library/Frameworks/Python.framework/Versions/2.{3,5,6}/lib/python2.6/threading.pyc

我不知道是否所有这些文件都是指向相同字节的硬链接,但这似乎是可能的。所有口译员似乎都是一样的:

代码语言:javascript
复制
$ find /System/Library/Frameworks/Python.framework/Versions/2.{3,5,6}/bin/* \
  -samefile /System/Library/Frameworks/Python.framework/Versions/2.6/bin/python

/System/Library/Frameworks/Python.framework/Versions/2.3/bin/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6

Python2.7是唯一维护的2.x版本,因此它是独立的,很可能会接收更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45425026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档