在Julia中无法使用PyCall导入OpenAI“gym”模块

时间:2017-01-26 15:16:23

标签: python julia openai-gym

我尝试使用PyCall.jl库导入julia中的python健身模块。

为了实现这一目标,我应用了以下内容:

$ julia
julia>  using PyCall
julia>  gym = pyimport("gym")
ERROR: PyError (:PyImport_ImportModule) <type 'exceptions.ImportError'>
ImportError('No module named gym',)

另一方面,如果我直接尝试在python中导入它,我能够做到这一点没有任何错误

$ python
>>> import gym
>>> # no error here

最后,为了测试PyCall包是否有问题,我尝试以相同的方式调用另一个python模块“sys”。这没有任何问题:

  $ julia
    julia>  using PyCall
    julia>  sys = pyimport("sys")
    PyObject <module 'sys' (built-in)>

有没有人能对我的问题有所了解?

这是我的python版本:

$python
Python 2.7.12 |Anaconda 4.1.1 (64-bit)| (default, Jul  2 2016, 17:42:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>>

1 个答案:

答案 0 :(得分:1)

看起来PyCall使用的Python版本与您安装gym的版本不同。

要更改PyCall正在使用的Python版本,您可以使用不同的Python可执行路径重建包。

julia> ENV["PYTHON"] = "/usr/bin/python"  # path to your Python executable
"/usr/bin/python"

julia> Pkg.build("PyCall")
INFO: Building Conda
INFO: Building PyCall
INFO: PyCall is using /usr/bin/python (Python 2.7.12) at /usr/bin/python, libpython = libpython2.7
INFO: /home/user/.julia/v0.5/PyCall/deps/deps.jl has been updated
INFO: /home/user/.julia/v0.5/PyCall/deps/PYTHON has been updated

我假设您的Python可执行文件位于/usr/bin/python。要在UNIX上查找其路径,可以运行which python

~$ which python
/usr/bin/python