将julia v0.3.2安装到MacOSX 10.9.5中 确实
Pkg.add("IJulia")
Pkg.add("PyPlot")
启动ijulia:
ipython notebook --profile=julia
这启动了一个IJulia笔记本(它在左上角说是IJ。
我使用pyplot进入iJulia的第一行,点击Shift输入,然后得到:
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 wish wish8.5 wish8.6
我对删除系统框架犹豫不决。我有原生的mac python以及anaconda版本(它有自己的lib / tk)我对下一步感到茫然。
编辑:我的朱莉亚代码是这样的: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])
除了以imshow开头的最后一行之外,每行在iJulia中执行正常,这会产生此错误:
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
答案 0 :(得分:0)
我觉得很蠢。我的问题是.bash_profile我有这些行
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
从之前的python安装中删除。我在这个旧的python安装的/ usr / local / bin文件夹中也有一堆可执行文件。当我在放入anaconda之前删除python 2.7文件夹时,我忘了删除它们。
现在错误消失了。我希望这有助于某人。
答案 1 :(得分:0)
警告:
Warning: requiring "*" did not define a corresponding module.
在某些情况下,检查我们是否使用稳定版本会有所帮助。
使用0.38 +预版本遇到同样的问题。 在切换回0.37稳定后,问题就消失了。
使用PyCall遇到此问题:
Warning: requiring "PyCall" did not define a corresponding module.