全局Python3.8的计算集群中,适配≥3.9依赖的Jupyter环境搭建最优方案
可行解决方案及操作步骤
方案1:用Conda创建独立Python3.9环境(优先推荐)
Conda可以完全脱离系统全局Python,在个人目录下管理独立的Python版本和环境,无需修改集群配置:
- 若集群未预装Conda,自行安装Miniconda到个人目录:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda - 初始化Conda:
source $HOME/miniconda/bin/activate - 创建Python3.9专属环境:
conda create -n py39_env python=3.9 -y - 激活环境并安装依赖:
conda activate py39_env pip install jupyter [你的目标依赖库] - 在Open On Demand启动Jupyter时,修改启动命令为:
(若Open On Demand支持自定义启动脚本,直接配置即可)source $HOME/miniconda/bin/activate py39_env && jupyter notebook
方案2:Docker容器运行Jupyter Notebook
利用Docker隔离环境,同时在Open On Demand中访问容器内的Jupyter:
- 编写Dockerfile构建包含Python3.9、Jupyter及依赖的镜像:
FROM python:3.9-slim RUN pip install jupyter [你的目标依赖库] WORKDIR /workspace EXPOSE 8888 CMD ["jupyter", "notebook", "--ip=0.0.0.0", "--no-browser", "--allow-root"] - 在集群节点构建镜像(或推送到集群可访问的镜像仓库):
docker build -t py39_jupyter . - 通过bsub启动容器,映射工作目录和端口:
bsub -Is -q [你的集群队列名] docker run -v $HOME/你的项目目录:/workspace -p 8888:8888 py39_jupyter - 在Open On Demand中配置端口映射到容器的8888端口,即可访问Jupyter
方案3:用pyenv安装独立Python3.9
pyenv可在个人目录安装任意Python版本,再基于此创建虚拟环境:
- 安装pyenv到个人目录:
git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv - 配置环境变量(添加到
~/.bashrc或~/.profile):export PYENV_ROOT="$HOME/.pyenv" command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" - 重新加载配置并安装Python3.9:
source ~/.bashrc pyenv install 3.9.17 # 选择稳定的3.9.x版本 - 在项目目录下设置本地Python版本并创建虚拟环境:
pyenv local 3.9.17 python -m venv py39_venv source py39_venv/bin/activate pip install jupyter [你的目标依赖库] - 同方案1,在Open On Demand中激活该虚拟环境后启动Jupyter
方案对比
- Conda:无需编译Python,一键安装预编译依赖,操作最省心,适合快速搭建环境
- Docker:环境隔离性最强,完全复刻本地开发环境,适合依赖复杂或需严格一致性的场景(需集群支持Docker)
- pyenv:轻量纯Python工具链,适合习惯原生虚拟环境的用户,但安装Python需集群具备基础编译依赖(如gcc、zlib),缺失时需自行安装到个人目录
内容的提问来源于stack exchange,提问作者W Charles
相关产品推荐
相关产品推荐

