【问题标题】:OpenAI "gym" module cannot be imported with PyCall in Julia在 Julia 中,无法使用 PyCall 导入 OpenAI“gym”模块
【发布时间】:2017-01-26 15:16:23
【问题描述】:

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

为此,我应用了以下内容:

$ 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
>>>

【问题讨论】:

  • 可能与python2 vs python3包有关,或者在不寻常的地方安装了“gym”? “健身房”是如何安装的? (它不在一个标准的 ubuntu 存储库中)
  • 可能是related
  • 谢谢大家。我找到了解决方案。不久。在构建 Pycall 包之前,我们需要在 Julia 中给出 python 环境的路径。我会尽快写长答案。

标签: python julia openai-gym


【解决方案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

【讨论】:

  • 是的,你是对的。我将我的推理作为评论放在我的问题下方
  • @zwlayer 啊,我明白了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 2022-10-08
  • 1970-01-01
  • 2020-10-18
  • 2019-11-19
相关资源
最近更新 更多