Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
苹果对Python框架做了什么?_Python_Macos - Fatal编程技术网

苹果对Python框架做了什么?

苹果对Python框架做了什么?,python,macos,Python,Macos,[tl;dr?见下图] OS X上的Python一直有点令人讨厌,因为它被拆分并分布在整个系统中。一些在/usr中,一些在/Library/Python中,一些在/System/Library/Frameworks/Python.framework中 现在,据我所知,框架应该包含Python发行版,即不会改变的部分。例如标题、标准库、二进制图像等 因此,作为a的开发人员,我认为自己在OSX生态系统以及如何在其上编译Python扩展方面相当出色。就在不到一个月前,全面破坏了C扩展大楼 尽管如此,它

[tl;dr?见下图]

OS X上的Python一直有点令人讨厌,因为它被拆分并分布在整个系统中。一些在
/usr
中,一些在
/Library/Python
中,一些在
/System/Library/Frameworks/Python.framework

现在,据我所知,框架应该包含Python发行版,即不会改变的部分。例如标题、标准库、二进制图像等

因此,作为a的开发人员,我认为自己在OSX生态系统以及如何在其上编译Python扩展方面相当出色。就在不到一个月前,全面破坏了C扩展大楼

尽管如此,它还是以一种新的方式被打破了,因为苹果似乎已经决定删除Python发行版中更好的部分。查看
include/
目录:

$ ls -l /System/Library/Frameworks/Python.framework/Versions/Current/include/python2.6 
total 16
-rw-r--r--  1 root  wheel    30K Jun 25  2010 pyconfig.h
遗漏了什么?
Python.h
标题可能是什么?此外,我对
zc.buildout
感到苦恼,因为它找不到
site.py
。。。看一看:

$ python -c 'print __import__("site").__file__'
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site.pyc

$ ls -l /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site.py*
-rw-r--r--  1 root  wheel    20K May 17 15:40 /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site.pyc
遗漏了什么?
site.py
可能是原创的

总而言之,苹果似乎正在剥离至关重要的开发者资源。我在使用OS X 10.6.7的其他MacBook上证实了这两个发现


tl;dr苹果已经从Python框架中删除了许多重要的头文件和源代码。还有其他人发生过这种事吗?如果是,这是什么时候发生的?为什么会这样?最重要的是,如何取回它们?

Python.h和其他头文件都包含在Xcode中。在我的系统中,它位于
/Developer/SDKs/MacOSX10.6.sdk/system/Library/Frameworks/Python.Frameworks/Frameworks.Frameworks/Frameworks/Frameworks/Frameworks.Frameworks/Frameworks.Frameworks/Frameworks.Frameworks/Frameworks.framework/Versions/Versions/2.6/include/python2.6/Python.h
中。后者似乎是由Xcode安装程序安装的。

实际上,看起来您根本不了解OSX生态系统
/System/Library
用于苹果公司提供的OSX“发行版”组件;第三方不得将文件放入其中,但应使用
/Library
。这就是为什么内置Python(多个版本)在
/System/Library/Frameworks/Python.framework
中,但将
站点包
目录放在
/Library/Python
中,以便可以在那里安装第三方模块。至于
/usr/bin
,它包含按版本指向python可执行文件的符号链接,以及根据某些参数自动选择版本的程序(请参见
man python
)。事实上,它是相当合乎逻辑和整洁的


现在回答你的问题。OS X的默认安装中不包括C头和其他开发人员资源。这不是Python特有的,这样做是为了在默认安装中节省空间。要获得开发人员资源,您需要安装开发人员工具。不管怎样,如果没有C编译器,你打算如何处理C头?

我过去也遇到过类似的问题。Space\u C0wb0y的建议对我很有用,使用
python\u select
我可以在python的“默认”版本之间切换。这也使我与XCode分离。我已经使用MacPorts安装了2.6和2.7版本,默认情况下,MacPorts将发行版放置在
/opt/local/Library/Frameworks/Python.framework/versions/2.7
等位置。这是我实现一致安装(包括第三方模块)的唯一方法。

无论如何,你通常最好安装单独版本的Python(尤其是如果你想使用numpy/scipy)。在我的MacBook Pro和10.6.7版本的MacPro上,这两个版本都很适合我,但我知道这以前是可以使用的!对于@AsgeirI来说仍然如此,我想我应该考虑重新安装Xcode!这个回答的语气很差;你好像在找一个论点。我说的正是你在回答中所说的,你在重复同样的信息。非常无益。多么奇怪的抱怨。我回答了你们所有的问题:“这还发生过其他人吗?为什么会发生?最重要的是,我该如何让他们回来?”(事实上,很抱歉,我错过了“如果是,这是什么时候发生的?”:我想是10.6)。我还回答了一个您没有直接提出的问题,但仍然需要知道(在OS X上组织Python文件的基本原理)。我猜最后的反问句听起来有点刺耳,但考虑到你问题中的语言(“讨厌”、“遗漏了什么?”、“看一看”等等),我从没想到你会被它困扰。把它贴在这个人身上,就像我们所说的,是一种常见的表达在处理技术难题时沮丧的方式。很多人都这样做;这并不意味着以类似的指责方式回答是个好主意——我是一个人,苹果是一家公司。我们中有一个人有大脑。很抱歉,我真的不明白你的意思,你回答了所有这些问题;“我怎样才能让他们回来”也许是这里最重要的问题!重新安装Xcode可能会恢复这些功能,但这几乎是一个全新的安装。我支持“如果你不能接受它,就不要抛出它”的学校。您是否完整安装了Xcode?标题包含在“UNIX开发”包中。试着做一个自定义安装并选择它。我不知道怎么做,但不知为什么Xcode安装程序一定跳过了安装这些头文件(以及Python标准库的源代码…?),尽管我很自信,我只是告诉它在默认情况下做它想做的任何事情。感谢您花费的时间和精力。所以您在
/System/Library/Python.framework
中还有一个。这似乎是我的问题-(也没人知道为什么?嗯,我不确定我是否希望有其他版本的Python,仅仅因为苹果公司决定破坏一些东西。这在以前是有效的,我非常非常肯定。我真的想知道一个这样的系统发生了什么事