gpt4 book ai didi

python - 让 PyC​​all 与 Julia 和 Enthought 的 Canopy 一起工作

转载 作者:行者123 更新时间:2023-11-28 18:45:20 26 4
gpt4 key购买 nike

Enthought 的 Canopy 和 Julia 在 PyCall 的实现上有些奇怪(我猜这与 Canopy 没有更新 distutils.sysconfig ??有关)。

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 运行 python 可执行文件并执行:

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 filePossible conflict ... 部分?

最佳答案

参见 PyCall issue #42 ,这是讨论的正确位置。情况有所改善,但在 Windows 上使用 Canopy/EPD 仍然存在一些运行时路径问题,现在我建议改用 Anaconda Python。

关于python - 让 PyC​​all 与 Julia 和 Enthought 的 Canopy 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21294652/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com