我在Mac OS X 10.6上的Python 2.7 virtualenv中安装了matplotlib 1.0.0。我可以创造好情节。但是,每当我按保存按钮时,我都无法在保存对话框窗口中键入文本,也无法保存图表。我唯一能做的就是点击取消。有关导致此问题以及如何解决问题的任何想法?
我通过克隆astraw's matplotlib github repository然后松散地关注HyperJeff's Installation Instructions for numpy/scipy/matplotlib来安装matplotlib。以下是setup.cfg
和make.osx
的可能相关部分,包括我在编译和安装之前修改过的部分。
[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
# 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.org的 Python 2.7 PPC / i386 / x86-64 Mac OS X安装程序磁盘映像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。
gui_support
中配置一个不同的setup.cfg
选项,然后重新编译matplotlib吗?似乎其他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。
matplotlib bug 2973874于2010年3月20日以同样的问题开放。但是,它是优先级5,并且自最初打开bug以来未被修改。以下是错误的描述:
我正在运行6.0.1 enthought python distibution 64bit Mac。如果运行一个绘图并单击“保存”,我将打开一个保存对话框窗口,我可以在文件名字段中输入文本。我可以选择现有文件,但仍然无法修改名称。如果我选择一个非png文件,它不会覆盖它。我得到一个同名但带有png扩展名的文件。
答案 0 :(得分:7)
您需要说服OSX,virtualenv实际上是从Application Bundle运行的。修复此处讨论:
并在此实施:
答案 1 :(得分:1)
我的回答并不能解决问题,但可以轻松解决问题!您可以在终端中使用正确的文件扩展名触摸新文件。您可以在matplotlib窗口中使用鼠标选择此文件并覆盖它。
答案 2 :(得分:1)
解决这个问题:
使用conda install python.app
安装pythonw
。
然后在终端中使用pythonw
代替python
。
E.g。
pythonw my_plot.py
希望这有帮助
答案 3 :(得分:0)
对于那些Thouis方法不起作用的人:
我注意到一个简单的解决方法是更改matplotlib后端。以下是可用后端列表:
http://matplotlib.org/faq/usage_faq.html#what-is-a-backend
请注意,您应该选择其中一个渲染器(即支持show()
命令的渲染器)。您可能需要安装后端,但可能安装了多个后端。
这样做:
import matplotlib
matplotlib.use('Qt4Agg') #replace 'Qt4Agg' with desired backend
警告:这应该在导入pylab等之前完成。