我在使用我以前的计算机(我以前工作的计算机)时写了一个小程序,它是一台 Windows 机器。现在,根据一位 friend 的建议,我买了一台 Mac,但我很难在上面找到东西。
特别是,我的程序使用了 pylab(matplotlib 的一部分),并且在 import pylab
之后出现 ImportError:
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 模块/片段。
我在 Internet 上进行了大量挖掘,发现了一些可能有用的东西,但结果却更加困惑。 This post似乎与我的问题类似,作者通过“删除(备份后)我系统的站点包文件夹 (/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 确认它的存在,但 Terminal 否认它。但是,当我将此代码输入到终端时,它确定该路径毕竟存在:
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:
path from the original 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 吗?我将不胜感激。
附注我正在使用 Mountain Lion,大约两周前我买了我的 Mac。
p.p.s. This person似乎有类似的问题,虽然它是一个不同的位,没有导入......
最佳答案
我在 OS X 上使用 matplotlib 时遇到了类似的问题。你只需要安装 libpng。我用过 brew : brew install libpng
.
关于python - Pylab ImportError - 库未加载 - Mountain Lion 的目录结构令人困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15861702/