首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyCall在朱莉娅身上找不到scipy

PyCall在朱莉娅身上找不到scipy
EN

Stack Overflow用户
提问于 2020-07-02 00:26:10
回答 2查看 1.3K关注 0票数 3

我目前正在将一堆matlab代码重写到julia中。这些代码包含了大量的数学函数,特别是3D网格的插值函数。在matlab中很容易处理这个问题:我所需要做的就是使用interp3函数。一旦我找不到任何简单的方法在Julia中做类似的事情,我就尝试通过PyCall使用一些Scipy特性。现在,问题来了:我已经安装了PyCall,将ENV[PYTHON]更改为我自己安装的anaconda的路径。不管怎样,我广泛地寻找了解决方案,我仍然得到了以下错误消息:

代码语言:javascript
复制
julia> pyimport("scipy")
ERROR: PyError (PyImport_ImportModule

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

PyCall is currently configured to use the Python version at:

/usr/bin/python3

and you should use whatever mechanism you usually use (apt-get, pip, conda,
etcetera) to install the Python package containing the scipy module.

One alternative is to re-configure PyCall to use a different Python
version on your system: set ENV["PYTHON"] to the path/name of the python
executable you want to use, run Pkg.build("PyCall"), and re-launch Julia.

Another alternative is to configure PyCall to use a Julia-specific Python
distribution via the Conda.jl package (which installs a private Anaconda
Python distribution), which has the advantage that packages can be installed
and kept up-to-date via Julia.  As explained in the PyCall documentation,
set ENV["PYTHON"]="", run Pkg.build("PyCall"), and re-launch Julia. Then,
To install the scipy module, you can use `pyimport_conda("scipy", PKG)`,
where PKG is the Anaconda package the contains the module scipy,
or alternatively you can use the Conda package directly (via
`using Conda` followed by `Conda.add` etcetera).

) <class 'ModuleNotFoundError'>
ModuleNotFoundError("No module named 'scipy'",)

Stacktrace:
 [1] pyimport(::String) at /home/gabriel/.julia/packages/PyCall/zqDXB/src/PyCall.jl:536
 [2] top-level scope at none:0

而且,我试过的所有东西,都是在windows10和Linux上都试过的。我不知道该怎么做了!如果能帮上忙,我会非常感激!提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-02 01:03:23

使用Conda -Julia的接口将scipy安装到Python包。

代码语言:javascript
复制
using Conda
Conda.add("scipy")

现在,pyimport("scipy")将像魅力一样工作。

请注意,使用自定义的Python安装可能会发生各种事情(您需要自己管理这些事情),因此我建议您使用Julia内置的Python。

下面是如何切换回内置Python的方法:

代码语言:javascript
复制
using Pkg
ENV["PYTHON"]=""
Pkg.build("PyCall")
票数 3
EN

Stack Overflow用户

发布于 2020-12-05 19:18:30

对于我的情况,能够指向自定义python位置仍然是更好的选择。正如https://github.com/JuliaPy/PyCall.jl/issues/569所说,pycall重建对我很有效。记得重启朱莉娅。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62681223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档