Following the instructions on the PyCall.jl readme,我想在我的julia项目中使用PyCall时使用pipenv python(在它自己的环境中)。
[在终端中,我已经使用pipenv shell
激活了python环境,然后找到了pipenv版本的python的路径文件。 PyCall已被添加到我的julia环境中的清单中。在源激活的终端中,我启动了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总是抛出此错误。我该如何替代或以其他方式解决基本茱莉亚的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