【问题标题】:pyplot error after installing julia安装 Julia 后出现 pyplot 错误
【发布时间】:2015-01-15 01:51:39
【问题描述】:

将 julia v0.3.2 安装到 MacOSX 10.9.5 没有

Pkg.add("IJulia")
Pkg.add("PyPlot")

使用以下命令启动 ijulia:

ipython notebook --profile=julia

这会启动一个 IJulia 笔记本(它在左上角显示 IJ。

我使用 pyplot 进入 iJulia 的第一行,按 shift enter,然后得到:

objc[21233]:TKApplication 类在 /Library/Frameworks/Tk.framework/Versions/8.5/Tk 和 /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk 中实现。将使用两者之一。哪一个是未定义的。 objc[21233]:TKMenu 类在 /Library/Frameworks/Tk.framework/Versions/8.5/Tk 和 /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk 中实现。将使用两者之一。哪一个是未定义的。 objc[21233]:TKContentView 类在 /Library/Frameworks/Tk.framework/Versions/8.5/Tk 和 /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk 中实现。将使用两者之一。哪一个是未定义的。 objc[21233]:TKWindow 类在 /Library/Frameworks/Tk.framework/Versions/8.5/Tk 和 /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk 中实现。将使用两者之一。哪一个是未定义的。 信息:正在加载帮助数据... 警告:要求“pyplot”没有定义相应的模块。

好的,所以我的 mac 已经在两个地方安装了 tk 包。如果我从库/框架中删除 TK 和 TCL 框架,如下所示: http://michaelwelburn.com/2013/06/07/python-error-conflicting-tk-libraries-and-activetcl/ 和这里: Python tk framework 然后当我尝试启动 iJulia 时出现以下错误:

信息:正在加载帮助数据... 警告:要求“pyplot”没有定义相应的模块。

其他作者说这有效,所以我很困惑。

我的 /usr/local/bin 目录包括这些)可执行文件: tclselect tclsh tclsh8.5 tclsh8.6 tclvfse 希望wish8.5wish8.6

我犹豫要不要删除系统框架。我有本机 mac python 以及 anaconda 版本(它有自己的 lib/tk)我对下一步感到茫然。

编辑:我的 julia 代码是这样的:

using PyPlot

# julia set
# (the familiar mandelbrot set is obtained by setting c==z initially)
function julia(z, c; maxiter=200)
    for n = 1:maxiter
        if abs2(z) > 4
            return n-1
        end
        z = z*z + c
    end
    return maxiter
end

# varying the second argument to julia() tiny amounts results in a stunning variety of forms
@time m = [ uint8(julia(complex(r,i), complex(-.06,.67))) for i=1:-.002:-1, r=-1.5:.002:1.5 ];

# the notebook is able to display ColorMaps
get_cmap("RdGy")

imshow(m, cmap="RdGy", extent=[-1.5,1.5,-1,1])

iJulia 中的每一行都可以正常执行,除了最后一行以 imshow 开头的会出现此错误:

PyError (PyObject_Call) <class '_tkinter.TclError'>
TclError('Can\'t find a usable tk.tcl in the following directories: \n    /System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Scripts\n\n/System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Scripts/tk.tcl: version conflict for package "Tk": have 8.5.15, need exactly 8.5.9\nversion conflict for package "Tk": have 8.5.15, need exactly 8.5.9\n    while executing\n"package require -exact Tk  8.5.9"\n    (file "/System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Scripts/tk.tcl" line 20)\n    invoked from within\n"source /System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Scripts/tk.tcl"\n    ("uplevel" body line 1)\n    invoked from within\n"uplevel #0 [list source $file]"\n\n\nThis probably means that tk wasn\'t installed properly.\n',)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.py", line 2370, in imshow
    ax = gca()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.py", line 701, in gca
    ax =  gcf().gca(**kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.py", line 343, in figure
    **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/backends/backend_tkagg.py", line 80, in new_figure_manager
    window = Tk.Tk()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1764, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)

while loading In[7], in expression starting on line 1

 in pyerr_check at /Users/userme/.julia/v0.3/PyCall/src/exception.jl:58
 in pycall at /Users/userme/.julia/v0.3/PyCall/src/PyCall.jl:85
 in imshow at /Users/userme/.julia/v0.3/PyPlot/src/PyPlot.jl:370

【问题讨论】:

  • 首先,我没有看到任何错误,只有警告(和 INFO 消息)。除了这些警告还有实际问题吗?
  • 您的 IPython 是安装到本机 Mac Python 还是 Anaconda 上?
  • 另外,除了原生 Mac 和 Anaconda 之外,您是否还有第三个 Tk(来自 ActiveTcl 或其他地方)?如果是这样,您是如何安装的?
  • 最后,你试过tclselect 8.6吗?我不知道你运行的哪个 Python 是否关心这一点,但如果是的话,听起来你只有一个 8.6,而你有两个或三个 8.5...
  • 我的python安装到anaconda,我的版本是2.3.1---我没有其他python安装。

标签: python matplotlib julia


【解决方案1】:

我觉得自己好傻。我的问题是我有这些行的 .bash_profile

PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

以前的 python 安装遗留下来的。我的 /usr/local/bin 文件夹中还有一堆来自这个旧 python 安装的可执行文件。当我在放入anaconda之前删除了python 2.7文件夹时,我忘了删除这些。

现在错误消失了。我希望这对某人有所帮助。

【讨论】:

    【解决方案2】:

    对于警告: Warning: requiring "*" did not define a corresponding module. 在某些情况下,检查我们是否使用稳定版本会有所帮助。

    在 0.38+pre-versions 中遇到了同样的问题。 切换回 0.37 stable 后,问题就消失了。

    使用 PyCall 遇到这个问题: Warning: requiring "PyCall" did not define a corresponding module.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-07
      • 2018-01-01
      • 2014-12-07
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多