这话题很多人都写过了。但果然自己还是写一遍比较好。(未完工)
我不是这方面的大佬,是结合资料梳理思路,如果有错误,欢迎指正。
感谢小助理chatGPT帮我纠正了很多以前的错误认知,解答了以前的疑惑。
写到后面才发现,其实本文内容可以列一个表格。表格文章链接:<>
文章内容包含三部分
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是跨平台的一种标准方式。
-
依赖和包管理(文件存放)也又是技术。
-
- 1) trusted-host。两个都有
-
- 二 使用,下载管理包
- 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
-
- pip和conda的 查看,安装,卸载,升级,导出配置,按文件下载
- 三 虚拟环境
- 虚拟环境的创建,激活,删除,宏观管理。(下次来写)
-
#1 pip #创建
其他
撰写本文时候的一些想法