我在使用我以前的计算机(我以前工作的计算机)时编写了一个小程序,它是一台 Windows 机器。现在,根据一位朋友的建议,我得到了一台 Mac,但我花了很多时间来处理它。
特别是,我的程序使用 pylab(matplotlib 的一部分),并且我在之后出现 ImportError import pylab
:
Error: ~/Documents/New folder/Programowanie/Projekt/SimAccents_v2d.py:2:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pylab.py:1:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/pylab.py:222:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/mpl.py:2:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axis.py:14:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/text.py:29:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/backend_bases.py:47:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/textpath.py:11:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/mathtext.py:61: ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so, 2): Library not loaded: /opt/X11/lib/libpng15.15.dylib
我在 Python IDLE 中尝试过import matplotlib
,它有效,所以显然问题出在 pylab,而不是 matplotlib。但是,我尝试import matplotlib.pyplot
并得到了几乎相同的错误,我猜这是因为它们是 matplotlib 的非常相似的模块/片段。
我在互联网上进行了大量挖掘,发现了一些可能有用的东西,但结果却更加混乱。这篇文章似乎与我的问题相似,作者通过“删除(备份后)我系统的站点包文件夹(/Library/Python/2.7/site-packages)中的matplotlib文件夹”解决了这个问题。我希望这可能起作用的原因是 Python 可能在错误的位置查找文件。
为了检查这一点,我使用了找出 matplotlib 安装位置的方法:
>>> import matplotlib
>>> matplotlib.__file__
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.pyc'
...和 matplotlib 的目录位置:
>>> matplotlib.get_configdir()
'/Uses/stanislawpstrokonski/.matplotlib'
调查这些路径,我发现第二个是一个隐藏文件夹,它只包含两个文件 - .DS_Store(隐藏)和 fontList.cache。然而,第一个目录更令人毛骨悚然,因为 Python 表示该目录存在,包括上面错误消息的最终“问题”文件:
>>> os.path.isfile('/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so')
True
...但我一直无法在我的 Mac 上找到 ~/Library/Frameworks,因为它都没有出现在 Finder 中,而且 Mac OS 终端似乎也找不到它:
Stanislaws-MacBook-Pro:~ stanislawpstrokonski$ cd ~/Library/Frameworks
-bash: cd: /Users/stanislawpstrokonski/Library/Frameworks: No such file or directory
/Library/Python 的情况完全相同——Python 确认了它的存在,但终端否认了它。但是,当我在终端中输入此代码时,它会确定路径确实存在:
Stanislaws-MacBook-Pro:~ stanislawpstrokonski$ cd /usr/bin; ls -l python2.7
lrwxr-xr-x 1 root wheel 75 16 Nov 16:30 python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
我检查的另一件事是Library not loaded:
原始 ImportError 的路径:
>>> os.path.isfile('/opt/X11/lib/libpng15.15.dylib')
False
所以也许问题是我错过了这条路?我该怎么办?matplotlib 不是要在安装时对这类东西进行分类吗?
我不知道为什么 pylab 行为不端,当 wxPython 和 numpy(显然,除了 pylab 和 pyplot 之外的 matplotlib)似乎工作正常时。我也对 Mac OS X 的目录结构感到困惑,尽管我仍然觉得这可能是问题的根源。另一个原因可能是我在我的机器上安装了 Python,但我听说 Mac OS 已经安装了 Python,所以这两者可能会以某种方式相互混淆。
很抱歉这篇文章这么长,但是当我不知道确切的问题出在哪里时,我觉得我必须把所有东西都写下来。任何人都可以帮助我让 pylab 工作,并可能在此过程中启发我有关 Mac 的信息吗?我将不胜感激。
ps 我正在使用 Mountain Lion,大约两周前我买了我的 Mac。
pps这个人似乎也有类似的问题,虽然它是一个不同的位,没有导入......