Conda管理Python不同版本教程
目录
5.扩展(conda install 指定label,安装qgis)
不太推荐
pyenv管理Python不同版本教程(本人另一篇博客,姊妹篇)
0.前提
①anaconda、miniconda(2个的下载仓库链接)在win上推荐前者(集成好了许多库,版本之间无矛盾,更适合数据科学),在linux上推荐后者,但我在linux上喜欢用原生python、pip和docker进行管理;
个人conda安装qgis时,发现采用最新的miniconda、miniforge(conda版本比较新时就变成多线程了)下载速度是多线程异步的速度很快,anaconda为了稳定库之间的依赖,即使最新的anaconda其conda版本也比较老一些!导致一些库安装后报dll failed load的错误。
假如你不喜欢anaconda系列,那么开源的miniforge 也是开源替代的,命令和conda一样,channel默认是conda-forge(可设置国内源)!
②python虚拟环境创建有很多库可实现,但是管理不同python版本,比较方便的是pyenv、conda;
③python原生虚拟环境创建:python -m venv `venv_name`,这种不适合不同版本的python虚拟环境,虽然很多时候用不到不同版本的python;
④pdm管理python项目,目前有很多人喜欢eg: fastapi。
1.conda常用命令
①conda create --name "env-name" python=3.10 创建不同python版本的虚拟环境,但此时env的安装路径为C盘 或者 python安装路径环境变量!
②conda activate "env-name" 进入创建的python虚拟环境
③conda deactivate 退出虚拟环境
④conda remove --name "env-name" --all 删除虚拟环境(包含本地文件)
⑤conda clean --all 清除conda的缓存(有利于下载最新的库包)
⑥conda env list 查看所有的虚拟环境
---------------------------------------------------------------------
若想像python -m venv venv那样随便指定虚拟环境路径安装位置,则选择如下命令:
⑦conda create --prefix `install-env-path` python=3.11 指定虚拟环境的安装路径和python版本,不可指定--name虚拟环境名字;如何进入此虚拟环境?
cmd切换到此路径下,conda activate ./
2.conda设置国内源(以添加清华源为例,阿里云源同样)
这个 博客 写的比较详细(关于conda源),conda config生成.condarc配置文件(一般在c盘用户目录下,像pypi源一样,全局设置1个即可,不用管其它位置的),如下命令会在这个文件中体现出,可以自行查看!
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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes
conda源操作的基本命令:
conda config --show 查看当前所有配置
conda config --show-sources 查看当前使用源
conda config --remove channels `删除指定源-直接将url复制到此`
conda config --add channels 加指定源或者直接修改修改配置文件
3.conda管理python库
pip install命令适用于conda install,但反之不行,尤其是cudatoolkit这样的非python库,所以在虚拟环境中可采用pip和conda一起管理库包!
个人建议:非python库像cudatoolkit这样的,采用conda安装,但python库,尽量采用pip安装。
如果非要用conda安装某些库,如paddle,那么上面这几个源url里面没有,需要在cloud/paddle/中寻找,那么就需要采用如下安装方式:-c等于--channels,省的在config中配置了,而-c conda-forge其实不必写,因为设置了这个url源了。推荐cudatoolkit用conda,而paddle用pip安装。
conda install paddlepaddle-gpu==2.6.0 cudatoolkit=11.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge
4.其它
conda config添加国内源时,不要添加太多url,一般建议添加pkgs/main和cloud/conda-forge/这2个链接,不管清华源还是阿里云源。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
5.扩展(conda install 指定label,安装qgis)
探索qgis时,发现conda可以安装qgis(如果想安装使用成功需要新的conda版本,所以尽量采用最新的miniconda或miniforge),不需要单独安装qgis安装包,这样就比geopandas分析功能强大很多了!本人也写了一下geopandas的缓冲区分析,conda安装qgis默认是没有label的,如果想要ltr版本的,需要执行conda install conda-forge/label/qgis_ltr::qgis=3.34.10这样的命令。conda search也是如此。发现miniconda或miniforge yyds,比anaconda好用多了,下载多线程快。
采用最新的miniconda,conda版本也是新的,那么conda安装的qgis完全没有问题!如果采用老版本conda安装新版本qgis就会报错 dll load failed。所以这也是版本之间的问题!
conda安装的qgis不支持grass等库的功能(不是完全版),因此采用矢量空间分析时,不想再安装qgis完整安装包时,且二次开发时,这种方式更适合。如果想用全部功能,推荐osgeo4w安装的qgis,里面有qt designer(qgis)适合二开,比较简单(ui像正常的ui拖拽一样)!
TODO:探索一下conda安装的qgis二次开发,实现一些智能编图方面的界面功能。