我尝试使用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
>>>发布于 2017-02-22 10:44:17
看起来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/pythonhttps://stackoverflow.com/questions/41876708
复制相似问题