Following the instructions on the PyCall.jl readme,当我为julia项目使用PyCall时,我想使用pipenv python(在它自己的环境中)。
在终端中,我使用pipenv shell
激活了python环境,然后找到了pipenv版本的python的路径文件。 PyCall已被添加到我的julia环境中的 list 中。在源代码激活的终端中,我启动了Julia并输入:ENV["PYCALL_JL_RUNTIME_PYTHON"] = pipenv python environment
,然后继续运行Pkg.build("PyCall")
,which installs conda。导入PyCall时-using PyCall
-我收到以下错误。
ERROR: InitError: Incompatible `libpython` detected.
`libpython` for C:\Users\me\.virtualenvs\iap\Scripts\python.exe is:
C:\Users\me\.virtualenvs\iap\Scripts\python37.dll
`libpython` for C:\Users\me\.julia\conda\3\python.exe is:
C:\Users\me\.julia\conda\3\python36.dll
PyCall.jl only supports loading Python environment using the same `libpython`
我试过重新安装PyCall,但是python环境libpython总是抛出此错误。我该如何替代或以其他方式解决基本 Julia 的conda要求?
我感觉到PyCall的Conda依赖关系导致了
libpython
问题,并且ENV["PYCALL_JL_RUNTIME_PYTHON"]
调用没有正确覆盖libpython变量。 最佳答案
根据文档,PyCall
支持 venv
和 virtualenv
环境,但是您正在使用pipenv
。如果要使用PYCALL_JL_RUNTIME_PYTHON
变量,建议您尝试使用两种受支持的替代方法。
如果要改为继续使用pipenv
环境,则可能必须在PYTHON
配置文件中指定startup.jl
变量,如下所示:
ENV["PYTHON"] = "C:\\path\\to\\your\\pipenv\\python.exe"
然后运行:
julia> using Pkg; Pkg.build("PyCall"); using PyCall
关于python - PyCall无法使用pipenv版本的Python InitError :Incompatible `libpython` detected,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59889778/