3

我在使用我以前的计算机(我以前工作的计算机)时编写了一个小程序,它是一台 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这个人似乎也有类似的问题,虽然它是一个不同的位,没有导入......

4

1 回答 1

0

我在 OS X 上遇到了 matplotlib 类似的问题。你只需要安装 libpng。我用过brew : brew install libpng

于 2013-04-08T06:59:42.910 回答