微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Julia中使用Anaconda中没有的需要通过pip安装的Python包

如何解决如何在Julia中使用Anaconda中没有的需要通过pip安装的Python包

我使用 Julia 1.6.0(截至今天是测试版)并希望通过 plfit 使用 Python 包 PyCall

不幸的是,plfit 在 Anaconda 中不可用,因此我无法使用 Conda 模块安装它:

julia> using Conda

julia> Conda.add("plfit")
[ Info: Running `conda install -y plfit` in root environment
Collecting package Metadata (current_repodata.json): done
Solving environment: Failed with initial frozen solve. retrying with flexible solve.
Collecting package Metadata (repodata.json): done
Solving environment: Failed with initial frozen solve. retrying with flexible solve.

PackagesNotFoundError: The following packages are not available from current channels:

  - plfit

...

我如何从 Julia 安装这个包?

解决方法

您可以通过 pip 模块从 Julia 运行 PyCall

此外,包 plfit 引用了一个 cython 包,该包不存在于 Python 内置的 Julia 中,并且不会自动安装。因此你需要做:

using PyCall
run(`$(PyCall.python) -m pip install --upgrade cython`)
run(`$(PyCall.python) -m pip install plfit`)

现在可以从 Julia 使用 plfit 包:

julia> plfit = pyimport("plfit");

julia> x=rand(1000);

julia> myplfit = plfit.plfit(x)
PYTHON plfit executed in 0.064029 seconds
xmin: 0.397582 n(>xmin): 625 alpha: 2.92546 +/- 0.0770183   Log-Likelihood: 36.3511   ks: 0.197384 p(ks): 4.09676e-22
PyObject <plfit.plfit.plfit object at 0x0000000064871A90>

最后,请注意,有时以这种方式安装的某些软件包在查找二进制 Python 依赖项时可能会出现问题(plfit 并非如此)。在这种情况下,您需要将文件夹 %HOMEPATH%\.julia\conda\3\Library\bin 添加到您的 PATH 环境变量(根据您的配置和平台将 %HOMEPATH%\.julia 替换为 JULIA_DEPOT_PATH 或适当的系统路径)。

,

您也可以将 pip 与 Conda.jl(PyCall 附带)一起使用:

https://github.com/JuliaPy/Conda.jl#conda-and-pip

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。