我使用 Julia 1.6.0(截至今天的测试版)并希望plfit通过PyCall.
不幸的是,plfit在 Anaconda 中不可用,因此我无法使用 Conda 模块安装它:
julia> using Condajulia> Conda.add("plfit")[ Info: Running `conda install -y plfit` in root environmentCollecting package metadata (current_repodata.json): doneSolving environment: failed with initial frozen solve. Retrying with flexible solve.Collecting package metadata (repodata.json): doneSolving environment: failed with initial frozen solve. Retrying with flexible solve.PackagesNotFoundError: The following packages are not available from current channels: - plfit...
我如何从 Julia 安装这个包?
回答
您可以pip通过PyCall模块从 Julia运行。
此外,该包plfit引用了cythonPython 内置的 Julia 中不存在的包,并且不会自动安装。因此你需要做:
using PyCallrun(`$(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 secondsxmin: 0.397582 n(>xmin): 625 alpha: 2.92546 +/- 0.0770183 Log-Likelihood: 36.3511 ks: 0.197384 p(ks): 4.09676e-22PyObject
最后,请注意,有时以这种方式安装的某些软件包可能会在查找二进制 Python 依赖项时遇到问题(plfit 则不是这种情况)。在这种情况下,您需要将该文件夹添加%HOMEPATH%.juliaconda3Librarybin到您的PATH环境变量中(根据您的配置和平台替换%HOMEPATH%.julia为JULIA_DEPOT_PATH或适当的系统路径)。