我正试图在运行Mavericks的苹果机器上更新python安装。我担心我用自制软件搞砸了。
当我尝试制表完成python
:时,我得到以下输出
python python2.5-config python2.7 python3 config pythonw pythonw2.7python配置蟒蛇2.6蟒蛇2.7配置蟒蛇3.3蟒蛇2.5蟒蛇3.3python2.5 python2.6配置python3 python3.3配置pythonw2.6
运行where python
会产生以下输出/usr/bin/python
。类似地,运行where python3
会产生/usr/local/bin/python3
,而运行where python3.3
会产生/usr/local/bin/python3.3
。
当我分别运行每个不同的python可执行文件时,我会得到以下输出:
$pythonPython 2.7.5(默认值,2013年8月25日,00:04:04)darwin上的GCC 4.2.1兼容Apple LLVM 5.0(clang-500.0.68)键入"帮助"、"版权"、"信用"或"许可证"以获取详细信息。>>>
$python3Python 3.3.5(默认,2014年3月17日21:17:03)darwin上的GCC 4.2.1兼容Apple LLVM 5.1(clang-503.0.38)键入"帮助"、"版权"、"信用"或"许可证"以获取详细信息。>>>
$python3.3Python 3.3.5(默认,2014年3月17日21:17:03)darwin上的GCC 4.2.1兼容Apple LLVM 5.1(clang-503.0.38)键入"帮助"、"版权"、"信用"或"许可证"以获取详细信息。>>>
在PyCharm中,默认可用的解释器路径为:
/System/Library/Frameworks/Python.framework/Versions/2.5/bin/python
/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python
/usr/local/bin/pypy
/usr/local/bin/python3
/usr/local/bin/python3.3
在PyCharm中选择/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python
作为我的解释器表明有几个包已经过时。这些过期的包与我运行pip list -o
:时显示的包相同
警告:找不到setuptools的svn位置==0.6c12dev-r88846bdist mpkg(当前:0.4.4最新:0.5.0)找不到任何满足要求的下载一些外部托管的文件被忽略(使用--allow external bonjour py to allow)。matplotlib(当前版本:1.1.1最新版本:1.3.1)numpy(当前:1.6.2最新:1.8.0)pyOpenSSL(当前:0.13最新:0.14)python dateutil(当前:1.5最新:2.2)pytz(当前:2012d最新:2014.1)scipy(当前:0.11.0最新:0.13.3)setuptools(当前版本:0.6c12dev-r88846最新版本:3.3)扭曲(电流:12.2.0最新:13.2.0)xattr(当前:0.6.4最新:0.7.4)zope.interface(当前版本:3.8.0最新版本:4.1.0)pyobjc核心(当前:2.3.2a0最新:2.5.1)pyobjc框架通讯簿(当前:2.3.2a0最新:2.5.1)pyobjc框架AppleScriptKit(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架AppleScriptObjC(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架Automator(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架CFNetwork(当前:2.3.2a0最新:2.5.1)pyobjc框架Cocoa(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架协作(当前:2.3.2a0最新:2.5.1)pyobjc框架CoreData(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架核心位置(当前:2.3.2a0最新:2.5.1)pyobjc框架CoreText(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架DictionaryServices(当前:2.3.2a0最新:2.5.1)pyobjc框架异常处理(当前:2.3.2a0最新:2.5.1)pyobjc框架FSEvents(当前:2.3.2a0最新:2.5.1)pyobjc框架InputMethodKit(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架安装程序插件(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架InstantMessage(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架InterfaceBuilderKit(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架潜在语义映射(当前:2.3.2a0最新:2.5.1)pyobjc框架LaunchServices(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架消息(当前:2.3.2a0最新:2.5.1)pyobjc框架OpenDirectory(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架首选窗格(当前:2.3.2a0最新:2.5.1)pyobjc框架PubSub(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架QTKit(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架Quartz(当前:2.3.2a0最新:2.5.1)pyobjc框架ScreenSaver(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架ScriptingBridge(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架搜索工具包(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架服务管理(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架同步服务(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架系统配置(当前:2.3.2a0最新:2.5.1)pyobjc框架WebKit(当前版本:2.3.2a0最新版本:2.5.1)pyobjc框架XgridFoundation(当前版本:2.3.2a0最新版本:2.5.1)
尝试通过PyCharm更新numpy会导致以下错误:
升级包失败。执行了以下命令:/Applications/PyCharm CE.app/helpers/packaging_tool.py install--构建目录/private/var/folders/7r/9rtxb7c94bv_k4szp8lnkpmm0000gn/T/PyCharm-packaging258144586042338380.tmp-U numpy命令的错误输出:将故障的调试日志存储在/Users/myusername/Library/Logs/pip.log(1)
检查日志文件,似乎这就是导致故障的原因
clang:error:未知参数:'-mno-fused madd'[-Wunused命令行参数将来会出现硬错误]clang:注意:这将是一个硬错误(不能降级为警告)在未来clang:error:未知参数:"-mno fused madd"[-Wunused命令行参数将来会出现硬错误]clang:注意:这将是一个硬错误(不能降级为警告)在未来失败
当我运行sudo pip install -U numpy
时,我得到了与上面相同的错误
根据这些信息,我(希望是正确的)得出结论,我正在尝试更新苹果提供的python,MacPorts可能更适合解决这项任务。我安装了MacPorts并运行了port upgrade outdated
,结果得到了Nothing to upgrade
。
如何从2.7.5更新到2.7.6并更新相关包?
问题是特立独行的人似乎破坏了构建python扩展。mavericks上的python是用一个带有旧选项的旧编译器构建的。这些选项存储在中供以后使用
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py
你可以手动编辑这个文件以删除错误的编译器选项,也可以让sed为你做:
sed -i 's/-mno-fused-madd//' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py
我只在Python 2.7系统上测试并使用过它。我不知道同样的方法是否适用于/usr/local python版本。使用自制软件或其他工具使用最新的编译器选项重建那些python实例可能会更容易。
更新:您可能更喜欢使用gcc而不是clang。请参阅:https://stackoverflow.com/a/20295014/16998