请使用"pythonw"而不是"python"运行 - 无法从cmd行OSX在python / ipython中绘制绘图



我对python安装完全陌生,并在OSX 10.6 32位上使用了python 2.7.6的Enthought Canopy发行版

我让笔记本顺利地工作,以及Canopy界面内的一切。但是,当我运行相同的脚本时:

#!/usr/bin/python
import pylab
import numpy as np
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()

在命令行中使用' python ~/Docs/test.py '或' ipython ~/Docs/test.py ',我得到这个错误:

This program needs access to the screen.
Please run with 'pythonw', not 'python', and only when you are logged
in on the main display of your Mac.

我在这里搜索并找到了一些信息,但由于它在Canopy, pythonw和notebook中起作用,我不确定这是我问题的答案。我只是不明白为什么在命令行中python和ipython会有不同的后门。我说的对吗?

另外,使用自制软件安装会解决这个问题吗?我喜欢能够使用树冠gui,但似乎一旦树冠安装它改变了一切。我之所以问这个问题,是因为我很快就会得到一台新的mac电脑,并且在这里找到了相当精简的安装程序和虚拟环境设置指南。但是我仍然想把Canopy GUI作为一个选项。

提前感谢。

编辑:

好了,python notebook给出了同样的错误。我关闭并重新启动它。这是因为我调用了%pylab inline。我没有在每次运行后清除内存

你可以这样写:

ipython --pylab=osx

ipython notebook --pylab=osx

作为获得这两个图形的变通方法。这里的文档:https://support.enthought.com/entries/22861925-OS-X-10-9-Mavericks-Python-Canopy

有谁知道如何将其设置为默认值吗?

虽然使用%pylab inline是你想要的,如果你想保持所有的图形在python笔记本。选择osx将打开浏览器之外的窗口。所以你可以写ipython notebook --pylab=inline来调用这个

最新更新