在集群计算场景中,不同的科研应用或计算任务通常依赖于特定版本的Python及其软件包。为了灵活应对这些多样化需求,同时保证环境管理的规范与效率,集群采用Miniconda3作为统一的Python环境管理工具。该方案支持为不同用户或项目创建相互隔离的虚拟环境,既可由管理员部署公共基础环境供团队共享,也允许用户便捷地配置和维护其个人专用环境,从而有效解决环境冲突问题,并提升资源利用率和协作便利性
一、初始化个人Conda配置
首次使用miniconda3时,需要使用以下命令验证conda是否能正常使用,如果成功显示版本号(如conda 25.5.1),说明基础配置正确
conda --version
成功示例:
$ conda --version
conda 25.5.1
失败示例:
$ conda --versioin
conda: command not found
当显示“conda: command not found”时,说明conda环境尚未初始化,此时只需要使用以下命令即可正确初始化conda环境
/public/toolkit/miniconda3/bin/conda init
成功示例:
$ /public/toolkit/miniconda3/bin/conda init
no change /public/toolkit/miniconda3/condabin/conda
no change /public/toolkit/miniconda3/bin/conda
no change /public/toolkit/miniconda3/bin/conda-env
no change /public/toolkit/miniconda3/bin/activate
no change /public/toolkit/miniconda3/bin/deactivate
no change /public/toolkit/miniconda3/etc/profile.d/conda.sh
no change /public/toolkit/miniconda3/etc/fish/conf.d/conda.fish
no change /public/toolkit/miniconda3/shell/condabin/Conda.psm1
no change /public/toolkit/miniconda3/shell/condabin/conda-hook.ps1
no change /public/toolkit/miniconda3/lib/python3.13/site-packages/xontrib/conda.xsh
no change /public/toolkit/miniconda3/etc/profile.d/conda.csh
modified /public/home/vasp6666/.bashrc
==> For changes to take effect, close and re-open your current shell. <==
初始化成功后,需要重新登陆账号,然后再次尝试使用命令,即可成功显示版本号
conda --version
二、集群公共环境
在集群上,Miniconda公共环境是指由集群管理员统一安装和维护的python环境,普通用户只能使用,无权修改
1. 查看已有公共环境
通过以下命令查看集群现有的公共环境
conda env list
示例:
$ conda env list
# conda environments:
#
base * /public/toolkit/miniconda3
ase /public/toolkit/miniconda3/envs/ase
btp2 /public/toolkit/miniconda3/envs/btp2
deepmdkit /public/toolkit/miniconda3/envs/deepmdkit
ovito /public/toolkit/miniconda3/envs/ovito
phonopy /public/toolkit/miniconda3/envs/phonopy
pymatgen /public/toolkit/miniconda3/envs/pymatgen
shengbte /public/toolkit/miniconda3/envs/shengbte
vaspkit /public/toolkit/miniconda3/envs/vaspkit
其中左边这一列是环境的名字,右边这一列是环境的路径,带*号的是当前已激活的环境
2. 使用公共环境
首先通过以下命令激活环境(以激活phonopy为例)
conda activate phonopy
成功激活后在用户名前会出现phonopy字样
(phonopy) vasp6666@login01:~$
此时就可以使用这个环境里安装的python程序了
程序使用完毕或者需要切换其他环境,就需要先退出当前环境,使用命令
conda deactivate
3. 创建个人专用环境
个人专用环境是用户根据自己需求创建的环境,其他用户没有权限查看,个人专用环境名称不要与公共环境名称一致
创建环境需要指定环境名称,也可以指定python版本
接下来以安装phonopy为例,讲解如何为phonopy创建合适的python环境
首先浏览phonopy官网,确定安装phonopy所需的python版本和其他组件
Prepare the following Python libraries:
Python (>=3.9) and its header files
numpy (>=1.17)
matplotlib (>=2.2.2)
python-yaml (pyyaml>=5.3)
python-h5py (h5py>=3.0)
scipy
spglib (>=2.3)
symfc (>=1.2)
It is recommended to install seekpath to plot phonon band structure:
seekpath
For the CP2K interface, the following package will be needed to install:
cp2k-input-tools
可以看到安装phonopy需要python版本大于等于3.9
#创建环境,名字为myenv1,python版本为3.9
conda create -n myenv1 python=3.9
首次创建环境需要接受服务条款,输入a,回车即可,后续创建其他环境不会再询问
Do you accept the Terms of Service (ToS) for https://repo.anaconda.com/pkgs/main? [(a)ccept/(r)eject/(v)iew]: a
Do you accept the Terms of Service (ToS) for https://repo.anaconda.com/pkgs/r? [(a)ccept/(r)eject/(v)iew]: a
示例:
$ conda create -n myenv1 python=3.9
Do you accept the Terms of Service (ToS) for https://repo.anaconda.com/pkgs/main? [(a)ccept/(r)eject/(v)iew]: a
Do you accept the Terms of Service (ToS) for https://repo.anaconda.com/pkgs/r? [(a)ccept/(r)eject/(v)iew]: a
2 channel Terms of Service accepted
Channels:
- defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /public/home/vasp6666/.conda/envs/myenv1
added / updated specs:
- python=3.9
The following packages will be downloaded:
package | build
---------------------------|-----------------
ca-certificates-2025.11.4 | h06a4308_0 128 KB
expat-2.7.3 | h3385a95_0 167 KB
libnsl-2.0.0 | h5eee18b_0 31 KB
python-3.9.25 | h0dcde21_1 23.0 MB
setuptools-80.9.0 | py39h06a4308_0 1.4 MB
sqlite-3.51.0 | h2a70700_0 1.2 MB
wheel-0.45.1 | py39h06a4308_0 114 KB
------------------------------------------------------------
Total: 26.0 MB
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
_openmp_mutex pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu
bzip2 pkgs/main/linux-64::bzip2-1.0.8-h5eee18b_6
ca-certificates pkgs/main/linux-64::ca-certificates-2025.11.4-h06a4308_0
expat pkgs/main/linux-64::expat-2.7.3-h3385a95_0
ld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.44-h153f514_2
libffi pkgs/main/linux-64::libffi-3.4.4-h6a678d5_1
libgcc-ng pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1
libgomp pkgs/main/linux-64::libgomp-11.2.0-h1234567_1
libnsl pkgs/main/linux-64::libnsl-2.0.0-h5eee18b_0
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1
libuuid pkgs/main/linux-64::libuuid-1.41.5-h5eee18b_0
libxcb pkgs/main/linux-64::libxcb-1.17.0-h9b100fa_0
libzlib pkgs/main/linux-64::libzlib-1.3.1-hb25bd0a_0
ncurses pkgs/main/linux-64::ncurses-6.5-h7934f7d_0
openssl pkgs/main/linux-64::openssl-3.0.18-hd6dcaed_0
pip pkgs/main/noarch::pip-25.2-pyhc872135_1
pthread-stubs pkgs/main/linux-64::pthread-stubs-0.3-h0ce48e5_1
python pkgs/main/linux-64::python-3.9.25-h0dcde21_1
readline pkgs/main/linux-64::readline-8.3-hc2a1206_0
setuptools pkgs/main/linux-64::setuptools-80.9.0-py39h06a4308_0
sqlite pkgs/main/linux-64::sqlite-3.51.0-h2a70700_0
tk pkgs/main/linux-64::tk-8.6.15-h54e0aa7_0
tzdata pkgs/main/noarch::tzdata-2025b-h04d1e81_0
wheel pkgs/main/linux-64::wheel-0.45.1-py39h06a4308_0
xorg-libx11 pkgs/main/linux-64::xorg-libx11-1.8.12-h9b100fa_1
xorg-libxau pkgs/main/linux-64::xorg-libxau-1.0.12-h9b100fa_0
xorg-libxdmcp pkgs/main/linux-64::xorg-libxdmcp-1.1.5-h9b100fa_0
xorg-xorgproto pkgs/main/linux-64::xorg-xorgproto-2024.1-h5eee18b_1
xz pkgs/main/linux-64::xz-5.6.4-h5eee18b_1
zlib pkgs/main/linux-64::zlib-1.3.1-hb25bd0a_0
Proceed ([y]/n)? y
Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate myenv1
#
# To deactivate an active environment, use
#
# $ conda deactivate
环境创建成功后,激活环境
conda activate myenv1
验证一下自己的python版本是否正确
$ python --version
Python 3.9.25
此时可以使用pip命令安装需要的程序和组件(这里是phonopy、seekpath和cp2k-input-tools)
建议添加清华源增加下载速度 ( -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple )
pip install phonopy seekpath cp2k-input-tools -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
安装完成后,可以使用命令验证程序是否安装成功
$ phonopy -v
_
_ __ | |__ ___ _ __ ___ _ __ _ _
| '_ \| '_ \ / _ \| '_ \ / _ \ | '_ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_| |_| |___/
2.43.6
-------------------------[time 2025-11-08 16:11:31]-------------------------
Compiled with OpenMP support (max 44 threads).
Python version 3.9.25
Spglib version 2.6.0
Switched on phonopy-yaml mode.
"phonopy_disp.yaml" or "phonopy.yaml" could not be found.
___ _ __ _ __ ___ _ __
/ _ \ '__| '__/ _ \| '__|
| __/ | | | | (_) | |
\___|_| |_| \___/|_|
至此,个人专用python环境的创建以及程序的安装就完全成功了!
查看当前环境下所有已安装的程序和组件
conda list
过程示例:
$ conda list
# packages in environment at /public/home/vasp6666/.conda/envs/myenv1:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main
_openmp_mutex 5.1 1_gnu
annotated-types 0.7.0 pypi_0 pypi
bzip2 1.0.8 h5eee18b_6
ca-certificates 2025.11.4 h06a4308_0
click 8.1.8 pypi_0 pypi
contourpy 1.3.0 pypi_0 pypi
cp2k-input-tools 0.9.1 pypi_0 pypi
cycler 0.12.1 pypi_0 pypi
expat 2.7.3 h3385a95_0
fonttools 4.60.1 pypi_0 pypi
h5py 3.14.0 pypi_0 pypi
importlib-resources 6.5.2 pypi_0 pypi
jinja2 3.1.6 pypi_0 pypi
kiwisolver 1.4.7 pypi_0 pypi
ld_impl_linux-64 2.44 h153f514_2
libffi 3.4.4 h6a678d5_1
libgcc-ng 11.2.0 h1234567_1
libgomp 11.2.0 h1234567_1
libnsl 2.0.0 h5eee18b_0
libstdcxx-ng 11.2.0 h1234567_1
libuuid 1.41.5 h5eee18b_0
libxcb 1.17.0 h9b100fa_0
libzlib 1.3.1 hb25bd0a_0
markupsafe 3.0.3 pypi_0 pypi
matplotlib 3.9.4 pypi_0 pypi
ncurses 6.5 h7934f7d_0
numpy 2.0.2 pypi_0 pypi
openssl 3.0.18 hd6dcaed_0
packaging 25.0 pypi_0 pypi
phonopy 2.43.6 pypi_0 pypi
pillow 11.3.0 pypi_0 pypi
pint 0.23 pypi_0 pypi
pip 25.2 pyhc872135_1
pthread-stubs 0.3 h0ce48e5_1
pydantic 2.12.4 pypi_0 pypi
pydantic-core 2.41.5 pypi_0 pypi
pyparsing 3.2.5 pypi_0 pypi
python 3.9.25 h0dcde21_1
python-dateutil 2.9.0.post0 pypi_0 pypi
pyyaml 6.0.3 pypi_0 pypi
readline 8.3 hc2a1206_0
scipy 1.13.1 pypi_0 pypi
seekpath 2.1.0 pypi_0 pypi
setuptools 80.9.0 py39h06a4308_0
six 1.17.0 pypi_0 pypi
spglib 2.6.0 pypi_0 pypi
sqlite 3.51.0 h2a70700_0
symfc 1.5.4 pypi_0 pypi
tk 8.6.15 h54e0aa7_0
transitions 0.9.3 pypi_0 pypi
typing-extensions 4.15.0 pypi_0 pypi
typing-inspection 0.4.2 pypi_0 pypi
tzdata 2025b h04d1e81_0
wheel 0.45.1 py39h06a4308_0
xorg-libx11 1.8.12 h9b100fa_1
xorg-libxau 1.0.12 h9b100fa_0
xorg-libxdmcp 1.1.5 h9b100fa_0
xorg-xorgproto 2024.1 h5eee18b_1
xz 5.6.4 h5eee18b_1
zipp 3.23.0 pypi_0 pypi
zlib 1.3.1 hb25bd0a_0
不使用这个环境时,记得及时退出环境
conda deactivate
4. 删除个人专用环境
当不再需要某个环境或程序时,可以将这个环境删除
首先使用命令激活到基础(base)环境
conda activate base
然后使用以下命令删除环境(以myenv1为例)
conda env remove -n myenv1
过程示例:
$ conda env remove -n myenv1
2 channel Terms of Service accepted
Remove all packages in environment /public/home/vasp6666/.conda/envs/myenv1:
## Package Plan ##
environment location: /public/home/vasp6666/.conda/envs/myenv1
The following packages will be REMOVED:
_libgcc_mutex-0.1-main
_openmp_mutex-5.1-1_gnu
bzip2-1.0.8-h5eee18b_6
ca-certificates-2025.11.4-h06a4308_0
expat-2.7.3-h3385a95_0
ld_impl_linux-64-2.44-h153f514_2
libffi-3.4.4-h6a678d5_1
libgcc-ng-11.2.0-h1234567_1
libgomp-11.2.0-h1234567_1
libnsl-2.0.0-h5eee18b_0
libstdcxx-ng-11.2.0-h1234567_1
libuuid-1.41.5-h5eee18b_0
libxcb-1.17.0-h9b100fa_0
libzlib-1.3.1-hb25bd0a_0
ncurses-6.5-h7934f7d_0
openssl-3.0.18-hd6dcaed_0
pip-25.2-pyhc872135_1
pthread-stubs-0.3-h0ce48e5_1
python-3.9.25-h0dcde21_1
readline-8.3-hc2a1206_0
setuptools-80.9.0-py39h06a4308_0
sqlite-3.51.0-h2a70700_0
tk-8.6.15-h54e0aa7_0
tzdata-2025b-h04d1e81_0
wheel-0.45.1-py39h06a4308_0
xorg-libx11-1.8.12-h9b100fa_1
xorg-libxau-1.0.12-h9b100fa_0
xorg-libxdmcp-1.1.5-h9b100fa_0
xorg-xorgproto-2024.1-h5eee18b_1
xz-5.6.4-h5eee18b_1
zlib-1.3.1-hb25bd0a_0
Proceed ([y]/n)? y
Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
