记录:创建一个conda虚拟环境并安装项目要求依赖(包)的顺序和注意事项

pytorch和torchvision都有cpu版本和gpu版本之分,在使用命令直接安装的时候,由于只指定了版本,而且因为直接访问默认源速度很慢,导致无法直接通过命令下载torch==1.7.1+cu110这个gpu版本的包,我当时也没意识到这个包是gpu版,和gpt讨论能不能拆分成pytorch==1.7.1和cudatoolkit==11.0下载 ,它也说可以,但是忽视了这样下载的可能是cpu版本的包

所以下次再碰到默认源无法直接下载包的情况,建议先手动打开默认源,查看一下相应版本的包,按.whl的格式下载下来,再安装也可以,并不一定先着急着换源,否则可能不是自己需要的版本的包

——————————————————

以下是之前的版本,因为实际使用的时候发现虽然当时显示安装成功,但是用pip list和conda list检查的时候,缺少matplotlib,并且发现安装以下命令安装的pytorch和torchvision都是cpu版本的,所以做了更正。

本文默认你已经安装了GPU驱动,ubuntu系统,miniconda3包管理工具,在使用普通用户权限在bash终端进入linux系统的时候,交互式命令行前缀(base)

根据一个python项目的readme.md或requirement.txt文件的要求,首先确定python版本,比如3.8(.5),使用命令:

conda create -n myenv python=3.8.5

再根据提示激活环境


因为有的pytorch版本可能比较老,会和新的cudatoolkit版本冲突,所以我选择在单独的虚拟环境中安装cudatoolkit,若已经在base环境中安装了cuda,可能会产生版本冲突,详细可以问问gpt;


在conda虚拟环境中安装cuda :

首先设置安装来源的地址如下:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

上述内容会被添加到/home下的.condarc文件中

(这块的设置是根据csdn的chitgpt,国内换源相关的问题,它给定网址的速度和有效性都很ok):

conda install -c anaconda cudatoolkit=11.0

由于pytorch指定版本可能在https://pypi.tuna.tsinghua.edu.cn/simple/找不到,于是使用

conda install pytorch==1.7.1

这里应该是通过conda-forge通道安装的,具体的安装路径换源仍然可以问csdn的chitgpt

torchvision的安装同上

关于torch和pytorch的区别,后者似乎是前者迁移到python后的一种新的叫法,如果requirement.txt里指定了torch==1.7.1+cu110通常可以替换成pytorch==1.7.1和cudatoolkit==11.0分别安装

以上是经常可能因为版本或者下载网址channel的原因找不到匹配版本的部分,所以按顺序单独安装,其他的依赖可以使用pip统一安装:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

这-i指定的路径是chitgpt推荐的,第一用的时候真心快,之前用各种官网默认的速度很慢,-f作为辅助推荐的网址也往往找不到内容。

我之前一直用conda安装,但是pip安装的依赖范围更广,可能出问题的就是cuda,torch相关的包,所以用conda单独安装,在使用conda创建了虚拟环境并激活后,普通用户(注意不是root用户)使用pip安装依赖,也是和其他虚拟环境相互隔离的,不用担心冲突,但是如果用root用户安装可能造成冲突

安装成功的包通常会直接打印在界面,如果直接使用pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/安装,出现匹配不到版本的情况,会中断在那里,导致后面的包无法安装,如果直接pip install然后复制requirement.txt文件中剩余部分输入命令行,默认只执行第一行,要在同一行指定多个安装的依赖,要用空格隔开,若是用文件指定依赖,则用换行隔开。

其他问题:

在一个新的显卡上(30系列)使用较老版本的pytorch(1.7.1)可能的问题和解决:解决pytorch capability sm_86 is not compatible with the current PyTorch installation 问题-CSDN博客

在找不到某个指定版本的pytorch时,换源或者换版本是通常的选择,若选择换版本,要注意:

在使用 pip install 安装新版本的 PyTorch 时,通常不会自动卸载之前的版本。pip 会尝试安装指定版本的 PyTorch,但不会自动卸载旧版本。这意味着您可能会同时拥有多个不同版本的 PyTorch 安装在您的环境中。                ————by openai chat gpt

我之前是听朋友说会自动卸载之前的版本,记不清说得是不是pip install的时候;所以装新版本还是先pip uninstall xxx,而卸载时要注意看下列出的版本号是不是自己要卸载的

若pip install中断,比如指定错了版本,可以清理缓存,而非执行卸载命令,具体的见gpt的回答:

当使用 pip install 安装软件包时,pip 通常会首先尝试从缓存中获取已下载的软件包文件,如果存在匹配的缓存文件,则会使用缓存文件进行安装,而不会重新下载软件包。这可以加快安装过程,因为不需要再次下载软件包。

如果 pip install 过程中中断,并且已经存在相应版本的软件包缓存文件,那么下次重新运行 pip install 时,它将尝试使用缓存文件,而不会重新下载。这可以节省时间和带宽,但也可能导致一些问题,因为缓存的软件包文件可能已损坏或不完整,从而导致安装失败或出现错误。

如果您遇到 pip install 过程中中断并怀疑问题可能出现在缓存文件上,您可以尝试以下步骤来解决问题:

  1. 清理缓存:您可以使用以下命令清理 pip 缓存:

    pip cache purge

pytorch版本回退时产生的问题和解答:

处理pytorch报错WARNING conda.gateways.disk.delete:unlink_or_rename_to_trash(140)_zqpuu的博客-CSDN博客

这里我也是手动删除的,但是后来再使用所创建的daformer环境,激活还可以,conda list等就会提示这不是一个conda环境,不知道是不是因为手动删除文件导致的,可能也是因为我之前在激活daformer的状态下用python -m venv创建了虚拟环境的原因,当时问gpt说不会产生冲突,但是对于这些问题,gpt有时也会犯错,所以在创建删除等写操作的时候,还是应该尽量确保虚拟环境之间相互隔离,从原来的conda虚拟环境中使用

conda deactivate

之后再重新创建环境。

附录:

前述.condarc文件的具体位置,可以先使用命令:

cd /home

在该目录下使用命令来查找:

find . -name .condarc

再使用

cat .condarc

查看内容,若需要编辑,可以使用

vim .condarc

建议尽量根据用途使用不同的命令,cat会直接将内容输出到交互式命令行的终端界面上,内容多的时候,对浏览前面的内容不太友好,但是,若是在pycharm的terminal使用vim查看内容,可能会因为快捷键的设置冲突,导致编辑完文件要用Esc键退出的时候,退到.py文件的编辑处,而无法使打开的.condarc或.bashrc等文件正常退出,这些文件通常与环境的配置信息相关,文件状态不正确可能导致环境使用不正常,出错需要从xshell或者其他专业软件进入linux系统检查是否存在.condrc.swp临时文件再做处理,后面的部分可以问gpt

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值