python matplotlib framework under macosx?
我得到这个错误:
/sw/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py:235:
UserWarning: Python is not installed as a framework. The MacOSX
backend may not work correctly if Python is not installed as a
framework. Please see the Python documentation for more information on
installing Python as a framework on Mac OS X
我使用fink安装了python27,它使用的是默认的matplotlib,它使用的是macosx框架。
有些用户可能不想更改其所有脚本的后端。这个页面——http://matplotlib.org/faq/usage_faq.html what-is-a-backend——告诉了另一种方式:
1 2 | import matplotlib matplotlib.use('TkAgg') |
在导入
您可以选择使用不需要额外安装任何东西的
有两种方法可以在MacOSX上构建和安装python,一种是作为传统的平面unix-y共享库。另一个被称为
如果您确实需要matplotlib中需要gui函数的函数,最简单的方法可能是切换到macports,macports也打包matplotlib(
当切换到OSX 10.10(约塞米蒂)时,我会看到这一点。我通过切换到wxagg后端来修复它。
1 2 3 | fink install wxpython300-py27 mkdir ~/.matplotlib echo"backend : WXAgg">>~/.matplotlib/matplotlibrc |
http://matplotlib.org/1.3.0/faq/usageu faq.html what-is-a-backend
如果在此处未找到matplotlibrc文件,请放入matplotlibrc,并使用以下命令检查位置:
1 2 | import matplotlib as mpl mpl.get_configdir() |
我在我的计算机上使用了Python的anaconda发行版和使用python 3.4的虚拟conda环境来解决这个问题。
在执行了"pip install matplotlib"之后,我可以在代码fine中导入matplotlit,但是当我试图绘制图像时,它会给出一个错误。
所以我回到终端,使用了anaconda python推荐的conda命令("conda install matplotlib"),问题自行解决了(请记住,这一切都是在我使用conda命令工具创建的环境中完成的,该工具位于http://conda.pydata.org/docs/using/envs.html)。我的系统正在运行Mac OSX 10.10.5。
通过以下代码序列导入库对我有效。这样就不需要创建新文件夹:
1 2 3 | import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt |
我运行的是OSX 10.14,其中安装了pyenv的python 3.7.1。
我找不到其他答案中列出的任何后端来为我工作(
取而代之的是更新的
一般来说,我一直在使用
1 2 | import matplotlib matplotlib.use('Agg') |
解决这个问题。不过,最近我在代码库上运行测试时遇到了这个框架错误,我应该只对其进行非常有限的更改。在这种情况下,请遵循Matplotlib的OSX文档中关于如何设置虚拟环境的建议:
1 2 3 4 | If you are on Python 3, use venv instead of virtualenv: python -m venv my-virtualenv source my-virtualenv/bin/activate |
发件人:https://matplotlib.org/faq/osx_framework.html
如果在
因此,如果您使用的是python3,请使用venv而不是virtualenv。
要将venv与python3结合使用,请使用
其余和virtualenv相同。否则使用如果您想使用virtualenv作为您的虚拟环境,请选择
只需在~/.bash_概要文件中添加一个新命令来启动python就可以了。
别名vpython3=/library/frameworks/python.framework/versions/3.6(替换为您自己的python版本)/bin/python3
然后"source~/.bash_profile"并使用vpython3启动python3。
说明:默认情况下,python是作为框架安装在mac上的,但是使用virtualenv会在创建的虚拟环境下链接python3命令,而不是上面的框架目录(在终端中是哪个python3),您会看到这一点。也许matplotlib必须在python框架中找到bin/include/lib/等。
查看有关在OSX上使用matplotlib的官方常见问题解答。根据您的情况,它有几种解决方案。为我工作的是:
- 步骤1:打开终端
- 第二步:执行
conda install python.app 安装python.app - 第三步:使用
pythonw 运行python脚本,如pythonw my_script.py 。