tags
科研
type
Post
status
Published
date
Apr 12, 2025
slug
conda
summary
category
实用工具箱
password
icon
基本命令
需要用管理员解除安全限制,才能在powershell中使用conda激活的虚拟环境
conda env list查看当前有哪些环境conda creat -n env_name python==3.12 创建名称为env_name的环境,可以指定python版本conda install python==3.10 更改python的版本conda activate env_name 激活虚拟环境。激活成功后命令行之前会出现(env_st-gcn)conda deactivate退出虚拟环境conda list 查看当前环境中有哪些依赖项conda install pip 为了通过pip安装python的依赖包,需要先在虚拟环境中安装pip(已经有pip就不要重新装了,版本问题可能会导致后续版本不匹配!)后续安装可以用
pip install,也可以用conda install,二者渠道不同。conda渠道有时无法检查出所有的依赖项,因此我一般只用conda安装torch(速度比较快),剩下全部用pip。如果非要两个都用的话,先用conda,再用pipconda remove -n env_name --all 移除环境conda rename -n old_name new_name 重命名环境本机虚拟环境备忘
- base
python 3.12
- hdc
python 3.10
- torch-basic-cpu
python 3.10
torch 2.7.0+cpu
tensorboard
- torch-basic-xpu
python 3.10
intel-extension-for-pytorch 2.6.10+xpu
torch 2.6.0+xpu
torchaudio 2.6.0+xpu
torchvision 0.21.0+xpu
tensorboard
- TimingPredict(用于guoTimingEngineInspired2022)
python 3.8
torch 1.31.1+cpu
dgl 0.9.1
及其他该项目需要的依赖
- verilator
python 3.8
有点忘了是用来干啥的了,verilator需要独立虚拟环境吗
- dhg(用来运行DeepHypergraph)
python 3.8
torch 1.13.1+cpu
dhg 0.9.5
- dgl+pyg(可以运行dgl&pyg)
python 3.10.19
torch 2.1.0+cpu
dgl 2.2.1
torch-geometric 2.7.0(包括所有附属包)
超算虚拟环境备忘
- new_HyperGef
python 3.8
torch 1.13.0+cu116
dgl 1.1.3+cu116
pyg 2.5.2+cu116
- DGR
boost
配环境经验
general
找不到旧版本可以用
pip install dgl==0.9.1(例)指定版本开始配环境之前,应该先检查各依赖项(torch、dgl等)对python版本和cuda版本的支持,尽量减少返工。
如果遇到一个包,只有setup.py,没有给出pip安装方式,只要cd到包含setup.py的目录下,用
pip install .,即可安装pip出现这种报错,一般是自动寻找版本失败了。可以用类似
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.4.0+cu121.html来指定版本安装。cmake, gcc等环境也可以通过conda安装!(当然更方便的是用超算上的module,但它们一般版本比较高)
torch
安装torch前,应该先用
nvidia-smi查看硬件cuda版本。例如,超算硬件cuda版本为12.6,因此软件cuda版本应该<=12.6。在软件层面,由于我默认load的模块是cuda/12.1,因此之后均按照12.1安装较为妥当。安装pytorch后,可以用
torch.version.cuda查看软件cuda版本如果在
import torch时出现python3.10/site-packages/torch/lib/libtorch_cpu.so: undefined symbol: iJIT_NotifyEvent ,是因为mkl版本太高。用conda install mkl=2023.1 -c conda-forge回退版本可以解决这一问题(暂时不确定会不会引发别的问题)No CUDA runtime is found说明找不到gpu资源或者cuda/torch版本有问题有时用conda渠道会安装cpu版本,可以更换pip渠道解决
refs:
torch-xpu
refs:
Intel® Extension for PyTorch* Installation Guide
This website introduces Intel® Extension for PyTorch*
Intel® Extension for PyTorch* — PyTorch Tutorials 2.6.0+cu124 documentation
Created On: Nov 09, 2021 | Last Updated: Jul 25, 2024 | Last Verified: Nov 05, 2024
dgl
最新版dgl仅支持torch 2.1-2.4
例子里是之前版本的dgl 0.9.1
pip渠道:
pip install dgl==1.1.3+cu116 -f https://data.dgl.ai/wheels/cu116/repo.htmlconda渠道:
conda install -c dglteam dgl-cuda11.6==0.9.1 Linux 64 | Anaconda.org如果直接
pip install dgl,很可能无法正确识别版本!在CPU环境下,推荐采用conda安装。conda安装之后,可能报错:
ModuleNotFoundError: No module named 'packaging’ ,手动安装packaging即可导入dgl.sparse时可能报错:
FileNotFoundError: Cannot find DGL C++ sparse library at D:\Anaconda\envs\dgl\lib\site-packages\dgl\dgl_sparse\dgl_sparse_pytorch_2.4.0.dll 这是因为dgl 2.0.0与torch 2.4不适配。可将torch降到2.1.0(该过程中会报错numpy>2.x编译不兼容,pip install numpy<2即可)测试dgl.sparse:
refs:
pyg
该库的官方名称是
torch_geometric 。在pyg 2.3之前的版本,除了下载该库之外,还要下载一系列依赖库pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-1.13.0+cu116.htmlpip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.4.0+cu118.htmlpyg_lib 0.4.0要求的glibc版本太高,可以回退到0.3.1
refs:
cmake/gcc
比较推荐的方式是load超算的module:先用
module avail查看可用的,然后module load ,如果要取消加载就用module unload。正式开始之前,最好用
module list确认一下当前加载的模块是不是想要的cmake之前要先删除/build
但由于超算上的cmake/gcc版本较高,有时可能不得不手动安装低版本的。这一点可以用conda来完成:
HyperGef
运行命令应为
python hgsys.py --backend dgl --model HGNN(github上有typo)/HyperGsys/hypergraph.py中第56行self.L = dglsp.spmatrix(L_coo).to(device) 使用了spmatrix这一方法,然而这一方法在dgl 0.9.1中根本不存在!这与该工作声称的环境要求不符。如果选择升级dgl,又会遇到其他的问题。为了避免浪费过多时间,不再尝试这一工作。cu-gr-2
涉及cmake编译,编译前一定要先删除/build目录!否则可能由于cmake cache导致编译的部分设置没有更改
直接load gcc(12.2.0)&cmake(3.25.0)&boost(1.77.0)三个module,执行
scripts/build.py -o release -t route会在编译至24%~26%的时候报错,定位在boost其原因应该是cu-gr-2中自带的rsync与高版本的boost发生了冲突。
为此,需要用conda安装boost/1.75.0。
安装之后再次编译,会报错无法正确识别boost。
这是因为在src/CMakeLists中强制采用了静态库。我们需要将里面与boost相关的
Boost_USE_STATIC_LIBS 改成OFF。并且,需要将以下代码中的-static全部去掉。静态库(
*.a/*.lib)与动态库(*.so/*.dll)的区别从静态库编译生成的可执行文件很大,直接把库中的代码“复制”了,因而更加独立
从动态库编译生成的可执行文件较小,因为没有直接“复制”动态库,而是提供了“超链接”,因而独立性较差
而超算提供的module中一般既包含静态库又包含动态库,因此当没有版本问题时,是最好的选择
- 作者:Tianyao Xiao
- 链接:https://xty27.top/article/conda
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。





.webp?table=block&id=25c9eb83-9bee-807c-9d8c-f33f89eaa541&t=25c9eb83-9bee-807c-9d8c-f33f89eaa541)



