3
Enthought的Canopy和Julia與PyCall
(我猜這與Canopy沒有更新distutils.sysconfig
??)有關。讓PyCall和Julia和Enthought的冠層一起工作
對此,有some discussion,通過將PyCall
指向正確的共享庫來解決此問題。
如何使此永久(如何更改distutils.sysconfig
)?
一些輸出:
julia> using PyPlot
ERROR: could not load module python: dlopen(python.dylib, 9): image not found
in pyinitialize at /Users/bdhammel/.julia/PyCall/src/PyCall.jl:422
in pyimport at /Users/bdhammel/.julia/PyCall/src/PyCall.jl:105
in include at boot.jl:238
in include_from_node1 at loading.jl:114
in reload_path at loading.jl:140
in _require at loading.jl:58
in require at loading.jl:43
at /Users/bdhammel/.julia/PyPlot/src/PyPlot.jl:32
julia> using PyCall
julia> pyinitialize("/Users/bdhammel/Library/Enthought/Canopy_64bit/System/lib/libpython2.7.dylib")
/Users/bdhammel/Library/Enthought/Canopy_64bit/System/lib/libpython2.7.dylib: /Users/bdhammel/Library/Enthought/Canopy_64bit/System/lib/libpython2.7.dylib: cannot execute binary file
julia> using PyPlot
Warning: Possible conflict in library symbol dtrtri_
Warning: Possible conflict in library symbol dgetri_
Warning: Possible conflict in library symbol dgetrf_
julia> plot([1,2])
1-element Array{Any,1}:
PyObject <matplotlib.lines.Line2D object at 0x115b95090>
,並繪出了線
我想設置此工作,而不必做pyinitialize
位。
從鏈接討論:
PyCall運行蟒蛇可執行文件並執行:
import distutils.sysconfig
print(distutils.sysconfig.get_config_var('LDLIBRARY'))
print(distutils.sysconfig.get_config_var('PYTHONFRAMEWORKPREFIX'))
在哪裏存儲這些路徑,我應該怎麼改?
輸出的Python爲這些命令:
In [1]: import distutils
In [2]: print(distutils.sysconfig.get_config_var('LDLIBRARY'))
Python.framework/Versions/2.0.0.dev-f1c6cfc/Python
In [3]: print(distutils.sysconfig.get_config_var('PYTHONFRAMEWORKPREFIX'))
/Library/Frameworks
In [4]: distutils.__file__
Out[4]: '/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/distutils/__init__.pyc'
最後:我需要擔心的cannot execute binary file
或Possible conflict ...
部分?