远程服务器上配置conda环境
前言本文假设在linux的机子上进行配置。由于作者经常需要在特定环境的代码中才能运行成功,因此最好是配置一个conda env虚拟环境(当然使用virtualenv也可以), 不过有些论文作者直接就是按照conda去配置,然后把一些依赖导出,因此本文说一下如何在linux上配置conda.下载miniconda该部分参考 https://blog.csdn.net/qq_42951560/arti
前言
本文假设在linux的机子上进行配置。由于作者经常需要在特定环境的代码中才能运行成功,因此最好是配置一个conda env虚拟环境(当然使用virtualenv也可以), 不过有些论文作者直接就是按照conda去配置,然后把一些依赖导出,因此本文说一下如何在linux上配置conda.
下载miniconda
该部分参考 https://blog.csdn.net/qq_42951560/article/details/109152114
暂时没感受到conda和miniconda的区别,我在linux上用Miniconda比较多。
可以去官网查看
https://docs.conda.io/en/latest/miniconda.html
也可以去清华镜像(推荐):
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
然后挑一个合适的版本(比如我想下载 Miniconda3-py38_4.8.3-Linux-x86_64.sh)。拷贝链接, 在终端输入(找一个文件夹即可)
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.8.3-Linux-x86_64.sh
然后输入一下命令进行安装
bash Miniconda3-py38_4.8.3-Linux-x86_64.sh
中途可能需要输入yes或者回车
安装成功后添加一下环境变量
export PATH="【conda安装的位置】/bin:$PATH"
这个路径其实中途有输出
之后重新开一个终端,会发现已经命令行前面有提示环境了。
也可以看看虚拟环境列表。
快速创建环境极简版
这里python其他版本也行
conda create -n 【环境名字】 python=3.8
[optional] 装个pqi 切换一下pip 镜像源 pip镜像管理和npm镜像管理
然后
conda activate 【环境名字】
后面缺啥就conda install 啥或者 pip 啥
这里提一嘴torch的安装,现在不建议状态低版本的torch了,有些依赖会要求一定版本以上,例如torchmetrics要求torch>=1.8.1
装的时候我是这样,为了快一点 可以去这里找https://download.pytorch.org/whl/cu111/torch/
然后再下载的目录下,离线安装pytorch
pip install torch-1.9.0+cu111-cp38-cp38-linux_x86_64.whl
对应的torchvision是0.10.0
attention
或者有时候把环境全下完太久了,选择性安装可以考虑如下
例如我需要一下环境(stylegan3)
Python 3.9.16 torch 1.9.1 torchvision 0.10.1
先创建个环境
conda create --name stylegan3 python=3.9.16
在安装pytorch
conda install pytorch=1.9.1 cudatoolkit=11.1 -c pytorch
然后再pip一些包 (这里可以边运行边pip, 就是代码报错说缺啥module你再pip相应包就行)
numpy
requests
click
pillow
by the way, 我尝试了一下, 以下环境在3090也是可用的。
python 3.7.6 torch 1.8.0+cu111 torchvision 0.9.0+cu111
conda常用命令
查看conda环境列表
conda env list
创建环境时(如xtreme, 下同)指定python版本, 例如3.7.5
conda create --name xtreme python=3.7.5
创建环境时指定依赖(例如将依赖的网址写在conda-env.txt的文件中。
conda create --name xtreme --file conda-env.txt
conda env create -f environment.yaml
有些依赖比如
https://conda.anaconda.org/pytorch/linux-64/pytorch-1.3.1-py3.7_cuda10.0.130_cudnn7.6.3_0.tar.bz2
可以替换成重庆邮电大学的镜像的文件:
http://mirrors.cqupt.edu.cn/anaconda/cloud/pytorch/linux-64/pytorch-1.3.1-py3.7_cuda10.0.130_cudnn7.6.3_0.tar.bz2
不过还是比较推荐配置成清华大学的镜像, 它支持的版本比较多, 很多库基本能在这下面两个链接找到: https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/pytorch-1.3.1-py3.7_cuda10.0.130_cudnn7.6.3_0.tar.bz2
激活名为xtreme的环境 (conda init后需要重启shell, 我们重新开一个终端就好了。
conda activate xtreme
删除名为xtreme的环境
conda remove -n xtreme --all
python版本问题
有时候可能作者的python版本和本地全局的不一样。虽然我们conda create了一个环境,但是会发现pip3管理的包共用了…(ps: 有趣的是,并不是每台机子都会遇到…比如我租的腾讯云(centos 7)没有遇到…感觉很玄学
有个问题就是,你跑代码的时候,找不到这个module, 但是你用pip3去install, 会提示这个包在另一个python版本的site-packages已经exits!
看了一篇博客 https://blog.csdn.net/qq_37344125/article/details/104418636, 发现也没能帮助我问题,我连site-package目录都没有。
于是查了一下, 发现conda的github issue #394 一个老哥提了一个问题,
但发现最后结论是 conda不负责管理这些包,啊这…(不知道是不是因为菜导致我理解错了…
于是我只能求助 pyenv (ps: 11.8这天我发现也可以不用pyenv, 详见本文的 【指定版本的python相应的pip工具安装packages】部分), 我原来本地是3.8多的版本, 想切换到 3.7.5, 原作者的python版本。
于是我下载3.7.5版本,有点慢, 当然国外服务器这个下载速度就还行(因为repo服务器本身也在国外)
pyenv install 3.7.5
切换源可参考 pyenv 安装 Python 使用国内源
也可以直接使用shell$ v=3.8.5; curl -L https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -o >~/.pyenv/cache/Python-$v.tar.xz; pyenv install $v
然后把3.7.5设置为全局(不推荐,不符合软件工程规范,但我一时找不到好办法),这样pip3 install的包就能被项目的代码用上了。
pyenv global 3.7.5
如果下面两个可以work, 则不推荐设置为全局
pyenv local 3.7.5 # 设置当前工作目录开始向下递归继承
pyenv shell 3.7.5 # 只作用于当前会话
安装pyenv
如果环境没有pyenv, 那么 拷贝一下链接的内容:
https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer
写成一个sh文件,比如 pyenv_install.sh
然后bash pyenv_install.sh, 最后添加环境变量
export PATH=~/.pyenv/bin:$PATH
export PYENV_ROOT=~/.pyenv
指定版本的python相应的pip工具安装packages
例如我们用miniconda创建了一个虚拟环境xtreme, python的可执行路径在
/【用户名】/miniconda/envs/xtreme/bin/python
该路径可以通过 which python 命令找到(注意是在目标虚拟环境情况下)
那么用将numpy安装到该版本下的python对应的site-packages目录的方法如下
/【用户名】/miniconda/envs/xtreme/bin/python -m pip install numpy
这样子就可以直接不用安装pyenv就能解决问题了。
其他
todo…
以后遇到啥问题或者有更好方案再更新啦。
另外colab不知为何,下成功后,conda env list也有,但总是切换不过来,不知道是不是notebook没法切换的问题。
按照 Colab中安装conda - polyAI - 博客园 (cnblogs.com)操作也没法成功。
%%bash
MINICONDA_INSTALLER_SCRIPT=Miniconda3-4.5.4-Linux-x86_64.sh
MINICONDA_PREFIX=/usr/local
wget https://repo.continuum.io/miniconda/$MINICONDA_INSTALLER_SCRIPT
chmod +x $MINICONDA_INSTALLER_SCRIPT
./$MINICONDA_INSTALLER_SCRIPT -b -f -p $MINICONDA_PREFIX
import sys
_ = (sys.path
.append("/usr/local/lib/python3.6/site-packages"))
(ps: 最后一行注意python的版本。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)