【发布时间】:2011-04-11 05:05:41
【问题描述】:
我在 Mac OS X 10.6 上的 Python 2.7 virtualenv 中安装了 matplotlib 1.0.0。我可以很好地创建情节。但是,每当我按下 Save 按钮时,我都无法在保存对话框窗口中输入文本,也无法保存绘图。我唯一能做的就是点击取消。关于导致此问题的原因以及如何解决此问题的任何想法?
Matplotlib 安装过程
我通过克隆astraw's matplotlib github repository 然后松散地跟随HyperJeff's Installation Instructions for numpy/scipy/matplotlib 安装了matplotlib。以下是setup.cfg 和make.osx 可能相关的部分,包括我在编译和安装之前修改的部分。
setup.cfg
[egg_info]
tag_svn_revision = 1
[directories]
basedirlist = /Users/matthew/.virtualenvs/matplotlib-test
[status]
#suppress = True
#verbose = True
[provide_packages]
[gui_support]
#gtk = False
#gtkagg = False
#tkagg = False
wxagg = False
#macosx = False
[rc_options]
backend = MacOSX
#numerix = numpy
make.osx
# build mpl into a local install dir with
PREFIX=/Users/matthew/.virtualenvs/matplotlib-test
MPLVERSION=1.0rc1
PYVERSION=2.7
PYTHON=python${PYVERSION}
ZLIBVERSION=1.2.3
PNGVERSION=1.2.39
FREETYPEVERSION=2.3.11
MACOSX_DEPLOYMENT_TARGET=10.6
OSX_SDK_VER=10.6
ARCH_FLAGS="-arch i386-arch x86_64"
## You shouldn't need to configure past this point (but I did...)
PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
CFLAGS="${ARCH_FLAGS} -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
LDFLAGS="${ARCH_FLAGS} -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
CFLAGS="-arch i386 -arch x86_64 -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
LDFLAGS="-arch i386 -arch x86_64 -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
FFLAGS="-arch i386 -arch x86_64"
修改setup.cfg和make.osx后,我发出以下命令安装matplotlib:
make -f make.osx fetch deps mpl_build mpl_install
python setup.py install
注意: sudo 不是必需的,因为我正在安装到 virtualenv 中,而不是像 HyperJeff 那样安装到站点包中。
Python 安装
我使用 python.org 的 Python 2.7 PPC/i386/x86-64 Mac OS X Installer Disk Image for Mac OS X 10.5 安装了 Python 2.7。感谢Ned Deily's answer to this SO question,我知道这个版本的 Python 2.7 不能在 Mac OS X 10.6 上运行 IDLE 或 Tkinter。
问题
- 我安装的 Python 2.7 版本可能是问题的原因吗?我是否应该使用 适用于 Mac OS X 10.3 至 10.6 的 Python 2.7 32 位 Mac OS X 安装程序磁盘映像重新安装 Python 2.7?
- 是否需要在
setup.cfg中配置不同的gui_support选项,然后重新编译matplotlib?
2010 年 9 月 13 日下午 3:33 更新
其他 Mac OS X 和 matplotlib 用户似乎也遇到了同样的问题。在 matplotlib-users 邮件列表中,two users reported having the same problem on Mac OS X 10.5。虽然,他们运行的是 matplotlib 0.99.1.1 和 0.99.1.2,而我安装的是 matplotlib 1.0.0。
2010 年 9 月 14 日上午 8:18 更新
matplotlib bug 2973874 于 2010 年 3 月 20 日打开时遇到了同样的问题。但是,它的优先级为 5,并且自 bug 最初打开以来没有被修改过。以下是该错误的描述:
我正在运行 6.0.1 enthought python distibition 64bit Mac。如果运行绘图并单击保存,我会打开一个保存对话框窗口,我无法在文件名字段中输入文本。我可以选择现有文件,但仍然无法修改名称。如果我选择一个非 png 文件,它不会覆盖它。我得到一个同名但扩展名为 png 的文件。
【问题讨论】:
-
作为参考,我的股票 2.6 Python (for 10.6) 和 matplotlib 1.0 没有这个问题。那里没有帮助,很遗憾。
-
@Andrew — 你是如何安装 matplotlib 的?另外,不要卖短你的评论——这是一个有效的数据点。 matplotlib 在现有的 Python 2.6 下工作的事实可能表明 Python 2.7 框架的 Tkinter 支持被破坏是罪魁祸首。
-
我在 10.7 的 virtualenv 中运行 Python 2.7 时遇到了同样的问题。下面的答案为我解决了这个问题。
-
@AndrewDalke 是通过 virtualenv 还是使用系统 python 获得的?
-
那是系统 Python。我也有Python 2.7,直接编译到/usr/local/,没问题。
标签: python matplotlib virtualenv