记录pip和conda的常用命令。
建议用conda管理环境,在conda环境里用pip,因为conda很多包下不了,而且很慢。
pip
通常python自带pip,如果没有可以用以下命令安装:
python -m ensurepip --default-pip
pip
是python自带的可以执行的模块,可以使用python -m pip install 模块名
来安装模块,由于每次都从模块编译很慢,所以python也提供了pip的可执行文件,可以直接用pip install 模块名
来安装。pip
安装的包默认在python\lib\site-packages中。
常用命令:
pip install some-package -i https://pypi.tuna.tsinghua.edu.cn/simple # 从清华镜像下载指定的包
pip install pip -U -i https://pypi.tuna.tsinghua.edu.cn/simple # pip更新
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # pip添加镜像源
pip list --outdate # 列出不是最新版本的包
pip install --upgrade pip # 更新pip
pip install --upgrade package # 更新某个package
pip的缓存需要手动清理,用pip cache dir查看cache目录。
源码安装
pip install .
pip install -e . # 代码不会被copy到site-package里,这样可以方便改源码
这里有个坑:pip源码安装后,通常会在python命令行测试能否成功import,这里要离开当前文件夹才能import,否则会报错,原因看这里。
其它
-
m1 mac自带的python3支持x86和arm的包,默认下载arm的包,如果没有arm的包就用以下命令下载x86的包:
arch -x86_64 $(which python3) -m pip install ...
-
pip list只列出包含xxx.dist-info文件夹的包,有些包不通过pip下载,也被装在site-packages里,pip list是不会列出这些包的。
想查看所有包,可以通过:
import pkgutil print([p[1] for p in pkgutil.iter_modules()])
这可以列出所有包,包括官方的库。
conda
conda可以管理各种包,包括python和conda自身。
安装conda
linux非root用户的miniconda安装:首先下载用于安装的shell文件:
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
然后:
bash Miniconda3-latest-Linux-x86_64.sh
根据提示输入yes和enter进行安装。
conda换源:看https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/的教程
查看channel:
conda config --show channels
基本使用
conda env list
conda create -n env_name python=3.9
conda activate env_name
conda search package_name
conda install package_name # 在当前环境安装包
conda uninstall package_name
conda list # 列出当前环境的包
conda deactivate
conda remove -n env_name --all
conda clean -a # 删除所有缓存和不用的包
conda update conda # 更新conda
conda update --all # 更新所有
conda rename -n old_name new_name # 重命名环境
conda的报错处理
-
安装包的时候出现:
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
说明包的依赖很难解决,可能是版本原因,可能是现在没有相应的包了。出现这种情况建议新开一个环境。如果用pip安装,pip不会像conda对依赖检查这么仔细,可能就不报错了。
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
不知道这个啥意思。
-
现在python2.7已经不维护了,conda默认的channel下载不了,需要下载的话用这个channel:
conda install python=2.7 -c 'https://repo.continuum.io/pkgs/free/osx-64' # 这个是macos的