文章内容包含三部分
pip和conda的关系
pip和conda在安装包方面
pip和conda在操作虚拟环境方面
组织结构还是我习惯的无序列表的森林。(csdn有toggle list就好了…)
有时间精力去操心表达之前…暂时先沿用一段时间这种长期以来的风格。
- 一 conda和pip和关系。
- pip默认从#1下载。conda默认从#2下载。可以看到是两个不一样的源。
- 区别:范围上pipy是只关于python的包,conda有更杂的内容,而其中关于python的是经过测试和优化的,还可以外部语言绑定。这俩还有一些其他区别,但对我们暂时没有那么必要去了解,后面会补充说一下。
#1 pip
https://pypi.org/simple/
#2 conda
https://repo.anaconda.com/pkgs/main
https://repo.anaconda.com/pkgs/r
https://repo.anaconda.com/pkgs/msys2
#1 pip
https://mirrors.aliyun.com/pypi/simple/
#2 conda
channels:
- http://mirrors.aliyun.com/anaconda/pkgs/main
- http://mirrors.aliyun.com/anaconda/pkgs/r
- http://mirrors.aliyun.com/anaconda/pkgs/msys2
- https://mirrors.aliyun.com/anaconda/cloud/conda-forge
- https://mirrors.aliyun.com/anaconda/cloud/bioconda
#后面两个建议加上,为什么anaconda要写这么多个后面会解释。
#比如openai的包就在conda-forge的库里,我之前没加,就找不到
- 其配置文件本体,以及 查改增删的指令记录一下
#1 pip
#查
pip config list
#改
1长期(*1) pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
2临时 pip install package -i https://pypi.tuna.tsinghua.edu.cn/simple
#增
没有增
#删
没有删
#本体
你运行一次(*1)命令应该可以看到那个文件的位置。
网上说一般是C:\Users\用户名\pip\pip.ini。(Linux下肯定不一样)
但我的就不是,我是C:\Users\用户名\AppData\Roaming\pip\pip.ini。这还是个隐藏文件。
关于(*1)这个命令。形如pip config set blabla.asf sfasf。
这个指令的效果貌似wra方式往这个pip.ini里写东西,[blabla] asf = sfasf。
(wra,读文件,追加信息,如果文件不存在,就创建一个)
pip config edit --editor notepad 可以在命令行调用,用win的记事本打开这个文件
#2 conda
#查
conda config --show channels
#改
没有改命令(可以去本体改)
#增
conda config --add channels <channel-name>
#删
conda config --remove channels <channel-name>
#本体
通过命令conda config --show-sources 查看配置文件的位置。我是C:\Users\用户名\.condarc
conda好像还提供不同级别的配置。(系统级,用户级)(我暂不做了解)
- 其他信息
- 1) trusted-host。两个都有
- 2 为什么anaconda的源,一换就要换三个?
- 还有别的软件包
- 3)源的哪些网站长什么样子?怎么获取到包的下载链接,然后下载的?
- 这个问题我不太了解。打开阿里云的
http://mirrors.aliyun.com/anaconda/pkgs/msys2/
长这样
我们也知道,可以从这里,直接找到需要的包,下载下来的。
- 关于pip和conda的更多区别?
- 这个问题继续研究下去,包管理也是一门技术。
- 好像1pip和conda对包的组织方式(文件格式)也有所不同的。pip是源码形式(源码跨平台,嗯(有时候也不太对,比如win缺某个库)),conda是跨平台的一种标准方式。
- 依赖和包管理(文件存放)也又是技术。
- 二 使用,下载管理包
- pip和conda的 查看,安装,卸载,升级,导出配置,按文件下载
#1 pip
#查看
pip list
#安装
pip install <package_name>
#其他常用
#临时换源
pip install xxx -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
#强制本地安装
pip install <本地文件路径> --no-index
#因为pip的行为逻辑是一致的,如果你不加--no-index,它还会去线上源去找。挺烦
#指定版本
pip install "requests==2.7"
pip install "requests>2.0,<3.0"
pip install package==0.5.*
#卸载
pip uninstall <package_name>
#升级
pip install --upgrade <package_name>
#导出
pip freeze
#不会自动创建文件,会返回一个列表,形如
“numpy==1.19.5
pandas==1.2.4
matplotlib==3.4.1”
#按文件安装
pip install -r requirements.txt
#2 conda
#查看
conda list
#安装
conda install <package_name>
#其他实用
#指定版本
conda install numpy=1.18.5
conda install numpy=">=1.18.0,<=1.18.5"
#其他注意(来自GPT)
版本号应该遵循 Python 的版本号规范(例如 x.y.z 形式),并且在范围内是合法的。
在指定版本范围时,可以使用逻辑运算符 | 表示 "或",例如 1.18.0|1.18.5 表示安装 1.18.0 或 1.18.5 版本的包。
如果不指定版本范围,默认情况下 conda 会安装符合当前环境解析的最新版本的包。
#升级
conda update <package_name>
#卸载
conda remove <package_name>
#导出
conda list --export > environment.yml
形如
“# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: win-64
_ipyw_jlab_nb_ext_conf=0.1.0=py39haa95532_0
aiohttp=3.8.3=py39h2bbff1b_0
aiosignal=1.2.0=pyhd3eb1b0_0
alabaster=0.7.12=pyhd3eb1b0_0
anaconda=2023.03=py39_0”
#按照文件安装
conda install --file requirements.txt
- 虚拟环境的创建,激活,删除,宏观管理。(下次来写)
#1 pip
#创建
其他
撰写本文时候的一些想法