python包安装相关-conda,pip-虚拟环境

运行python的时候一定要注意当前运行所在环境位置,环境位置不同,包含的依赖包是不同的,然后不注意的话就是出很多莫名其妙的问题,比如一个pycharm里面不能运行的东西,命令行又能运行啥的

PIP使用的一些点:

  • pip安装包的时候加上后缀 --prefer-binary 不用最新的包,这样能避免很多包冲突安装不上的问题。

  • 为什么anaconda环境中,还需要用pip安装包,anaconda本身只提供部分包,远没有pip提供的包多

  • 在不同的conda环境中使用pip要注意pip是不是在当前环境中
    查看pip安装位置的办法
    pip show pip
    pip所在位置就是安装位置了 对应的 site-packages 目录下
    如果pip不在当前环境,需要先在当前环境安装
    使用如下命令:
        (进入环境后)
         conda install pip
    此时,正常使用pip安装就行了。

原因:
创建的conda环境里,也可能没有pip,此时用的是base环境的pip
pip不知道环境,pip在哪儿,包就安装到哪个环境,那么有可能会把包安装到base里面,结果出错产生版本冲突问题找半天你还不知道问题在哪儿

  • 安装git的包
    如果安装不上,那么下载,然后进入项目目录,然后使用pip install . 然后就能安装了

虚拟环境相关

https://sspai.com/post/75978

环境管理的的原因

conda的环境管理,环境管理主要用来应对一个包的不同版本之间的不兼容问题。
假如有一个项目P,它依赖a,b,c包,都是1.0的,然后然后a的开发者开发了2.0版本的a,出于某种原因我们更新了这个包(新的项目需要,或者某个包连带更新了它),但是2.0的a和1.0的a不兼容。也就是P不能按照原来的方式调用a,这时候就GG了,项目P不能跑了。

所以这种情况下,我们就很有必要为一个项目建立一个隔离的依赖环境了,也就是在这个环境中,依赖包版本是固定的,不被其他地方影响然后更新,遇到版本不兼容,项目不能跑的问题。

为什么不做版本兼容的包,这对开发者来说成本太高,因为Python开源,涉及到的整个环境太大了,涉及到的各种领域太多了,没有统一的控制,难以协调起来。不像Java,相对来说,整个体系控制比较严。这也是Python在服务器领域不好的原因吧,兼容性差,不稳定。

虚拟环境管理工具

目前有好多种虚拟环境管理工具
在这里插入图片描述
查了一下上述的管理工具,似乎没有一个具有明显的优势。
目前conda应该用的人最多,也用了一些时间了,所以还是只能选择这个。
pycharm导入anaconda的环境
file —setting ----project xxx—python interpreter
现在2023年2月18日的界面张这样,和以前不太一样了
在这里插入图片描述
然后选择conda的虚拟环境,其它也是环境管理工具,没有什么明显的优劣吧,这里选择conda的。
里面conda.exe注意选择Script下面的conda.exe
这里可以选择已经纯在的环境或者重新创建一个。
重新创建最好手动创建吧,在这里面创建都不知道位置在哪里。

conda的核心就是包管理和环境管理

不要用conda安装包,垃圾极慢
注意conda 是一个很垃圾的玩意儿,用的过程中你会遇到一些愚蠢的设计和东西,典型的,包多了根本无法通过它安装新包,直接resolve environment时卡死,咱是没办法才用它。

不能直接卸载conda 会删掉原来下载安装好的所有包

环境管理具体规则

由上面,知道了必须做环境隔离管理。那么具体怎么做呢。

创建环境
conda create -n env_name python=version pkg_name=version
python指明python的版本,不指名的话就用默认的版本
这个环境实在anaconda安装目录下面的,应该放在项目目录下更好
指定环境目录、位置
conda create --prefix=C:/ProgramData/Anaconda3/envs/xxx python=3.8
其中C:/ProgramData/Anaconda3/envs 是创建的目录所在位置;/xxx是所创建的环境的名称
指定了路径就不能同时指定名字,垃圾

删除环境
conda env remove -n env_name

激活环境
激活环境不能在cmd中用,需要在conda的命令行窗口中用,垃圾
conda activate env_name 或者 路径
conda activate envs
使用默认的pythonh环境,后面不加环境名字即可
conda activate

3). 退出环境
conda deactivate
source deactivate

查看已经安装的环境,会显示当前所在环境
conda info --envs

验证您当前环境中的 Python 版本:
python --version

导出环境配置
conda env_name export > environment.yml

拷贝环境
conda create -n B --clone A
克隆A到B中

清理环境中的安装包:
conda clean -a

环境管理更进一步的认知

激活环境之后,conda进行包管理,增删改查什么的,就只会在这个环境中生效。
运行python代码,代码用到的依赖就会先从这个环境中找,如果没找到,那么是没有了
环境管理能管理驱动吗,比如nvidia的驱动,应该是不能的

pycharm中配置conda环境

前面和windows一样,设置- 项目- python解释器-选中项目-右边Python解释器-最右边设置按钮-添加-选择conda环境-现有环境变量
后面不同的是选择的文件
默认conda环境
Conda Interpreter:Anaconda安装目录/bin/python
这里anaconda默认安装目录就是home下面的anaconda
自己建立的conda环境
Anaconda安装目录(如果指定了虚拟环境的安装路径则选择虚拟环境路径)/envs/虚拟环境名称/bin/python

包管理:

安装
conda install package_name=version
卸载:
conda remove package_names
更新包
conda update package_name=version
查看安装哪些包
conda list

渠道管理

这个决定你从哪个站点,下载及安装资源包

添加新渠道到顶部,最高优先级
conda config --add channels new_channel

或者conda config --prepend channels new_channel

添加新渠道到底部,最低优先级
conda config --append channels new_channel

conda和深度学习

有人说:根据他的经验,只要你显卡是最新的驱动,那么它可以同时支持好多的cuda版本,安装在不同环境中

源管理

首先翻墙用起来,就不用源了
参考https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
设置清华源,全局搜索或者打开用户目录下的.condarc 文件,设置如下内容进去
channels:

  • defaults
    show_channel_urls: true
    default_channels:
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
    custom_channels:
    conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    然后 运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。

使用的坑

python官方的版本,3.x 3.x.x conda里面可能没有,然后你用pip conda 可能都装不上 然后提示找不到包

其它

有时候一个包会莫名其妙找不到,试了采用不同的源,原始源都不行,不要再尝试了,用pip

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值