首页 > 解决方案 > 如何在 Julia 中使用 Anaconda 中不可用且需要通过 pip 安装的 Python 包

问题描述

我使用 Julia 1.6.0(截至今天为测试版)并希望plfit通过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 安装这个软件包?

标签: pythonpipanacondajuliapycall

解决方案


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

此外,该包plfit引用了cythonPython 内置 Julia 中不存在且不会自动安装的包。因此,您需要这样做:

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

现在该plfit软件包将可供 Julia 使用:

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


推荐阅读