2

我正在尝试将 Python 和 Julia 配置为使用这些方向进行互操作。

这就是我所做的。

  1. 安装 Julia 并添加julia到我的路径中。
  2. 已安装PyCall.jl
  3. PyJulia使用python3 -m pip install julia. 这会将 pyjulia 安装到我当前的 conda 环境的 python 以及python-jl.

现在,我想我理解 conda python 可能由于静态链接的 libpython而导致的问题。根据这些指示,您可以通过运行python-jl与 PyJulia 一起安装并使用与系统或任何 conda 安装发行版分开的 python 发行版运行来绕过此问题。

但是,当我运行其中一个示例测试python-jl -c 'from julia.Base import banner; banner()'时,我收到以下错误。

ERROR: PyError (PyImport_ImportModule

The Python package julia could not be found by pyimport. Usually this means
that you did not install julia in the Python version being used by PyCall.

PyCall is currently configured to use the Julia-specific Python distribution
installed by the Conda.jl package.  To install the julia module, you can
use `pyimport_conda("julia", PKG)`, where PKG is the Anaconda
package the contains the module julia, or alternatively you can use the
Conda package directly (via `using Conda` followed by `Conda.add` etcetera).

Alternatively, if you want to use a different Python distribution on your
system, such as a system-wide Python (as opposed to the Julia-specific Python),
you can re-configure PyCall with that Python.   As explained in the PyCall
documentation, set ENV["PYTHON"] to the path/name of the python executable
you want to use, run Pkg.build("PyCall"), and re-launch Julia.

) <class 'ModuleNotFoundError'>
ModuleNotFoundError("No module named 'julia'")

Stacktrace:
 [1] pyimport(::String) at /Users/austin/.julia/packages/PyCall/0jMpb/src/PyCall.jl:486
 [2] top-level scope at none:0

基于此,我需要将 PyJulia 包安装julia到 Python 的 Julia 发行版中。似乎有关于如何做到这一点的提示,pyimport_conda("julia", PKG)但不清楚是什么意思PKG......

其中 PKG 是 Anaconda 包,其中包含模块 julia

从这里开始,我不知道下一步该尝试什么,或者是否应该向PyJulia. 任何帮助,将不胜感激。

4

1 回答 1

1

我认为您的步骤没有任何问题,实际上在我的 Ubuntu 18.04 系统上,它们可以工作(我可以banner()从 python 调用该函数)。

我会试试这个(用 explicely 安装 PyJulia python-jl):

python-jl -c "import pip; pip.main(['install', 'Julia'])"

无论如何,打开一个问题将非常有用。

于 2018-12-05T08:51:48.703 回答