如何让IJulia与本地Poetry虚拟环境(.venv)协同工作?
解决IJulia使用Poetry虚拟环境中Jupyter的问题
核心问题
你在Julia会话中临时设置的ENV["JUPYTER"]仅对当前会话生效,且安装IJulia时并未读取这个临时配置,导致IJulia仍默认尝试通过Conda安装Jupyter。另外,使用相对路径也可能引发识别失败,建议改用绝对路径。
修正步骤
1. 获取Jupyter绝对路径
先激活Poetry虚拟环境,再获取Jupyter的绝对路径:
poetry shell which jupyter # 输出示例:/home/xxx/your-project/.venv/bin/jupyter
复制输出的绝对路径备用。
2. 永久配置JUPYTER环境变量
以下两种方式任选其一:
方式一:修改IJulia的构建配置
启动Julia后,编辑IJulia的构建文件:using Pkg Pkg.edit("IJulia")在打开的
deps/build.jl文件中,找到jupyter = get(ENV, "JUPYTER", "jupyter")这一行,把末尾的"jupyter"替换成你复制的绝对路径,保存退出后重新构建IJulia:Pkg.build("IJulia")方式二:设置系统环境变量
在你的shell配置文件(如~/.bashrc、~/.zshrc)中添加:export JUPYTER="/home/xxx/your-project/.venv/bin/jupyter"重新加载配置文件:
source ~/.bashrc # 对应你的shell配置文件再重新进入Poetry环境和Julia,执行构建:
poetry shell julia ] pkg> activate MyEnv pkg> build IJulia
3. 验证配置
完成后启动IJulia notebook:
using IJulia notebook()
此时应直接调用Poetry虚拟环境中的Jupyter,不会再提示安装Conda版本。
额外注意事项
- 确保Poetry虚拟环境已安装Jupyter:若未安装,可在环境中执行
pip install jupyter,或在pyproject.toml添加依赖后运行poetry install。 - 务必使用绝对路径,避免因会话工作目录变化导致路径识别失败。
内容的提问来源于stack exchange,提问作者Damon C. Roberts
相关产品推荐
相关产品推荐

