版本管理
pyenv
# mac
brew install pyenv
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
# linux
curl https://pyenv.run | bash
export PYENV_ROOT="$HOME/.pyenv" >> ~/.bashrc
export PATH="$PYENV_ROOT/bin:$PATH" >> ~/.bashrc
eval "$(pyenv init --path)" >> ~/.bashrc
- 使用
# 查看可用版本
pyenv install -list
# 查看已安装的 Python 版本
pyenv versions
# 安装指定版本
pyenv install 3.9.7
# 指定全局 Python 版本
# 切换版本后, 相应的pip和包仓库都会自动切换过去
pyenv global 3.9.7
# 指定当前 shell 下的 Python 版本
pyenv local 3.9.7
# 卸载指定版本
pyenv uninstall 3.9.7
- 原理
设置python3, pip3为默认大版本(linux)
- 该命令会修改系统默认调用的Python大版本(
/usr/bin/python
),而很多系统命令依赖2.X
的Python- 因此最好不要使用该命令管理Python版本,推荐使用
pyenv
- 因此最好不要使用该命令管理Python版本,推荐使用
- 参考: https://zhuanlan.zhihu.com/p/63071319
# python3优先级比2高,所以默认为3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
# 选择默认python版本
sudo update-alternatives --config python
# 安装pip3
sudo apt-get install python3-pip
# 使用pip时报错ImportError: No module named 'pip._internal'解决方案
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
sudo python3 get-pip.py --force-reinstall
环境管理
virtualenv(venv)
- pyhton3已经内置
venv
模块,无需额外安装virtualenv模块了
# 新建虚拟环境
python -m venv <name>
# 激活虚拟环境
# 激活后,命令行提示符前会显示当前虚拟环境的名字
source <name>/bin/activate
# 退出虚拟环境
deactivate
pipenv
# 安装
pip install pipenv
# 新建虚拟环境
pipenv install [--python <version>]
# 激活虚拟环境
# 激活后,命令行提示符前会显示当前虚拟环境的名字
pipenv shell
# 在该虚拟环境中安装依赖
pipenv install <pkg>
# 退出虚拟环境
exit
conda(anaconda)
- conda不仅是安装包的一个软件,还是一个环境管理的工具
- conda自己可以用来创建环境
- 而pip不能,需要依赖virtualenv之类的
- 可以管理很多个版本的python
- conda自己可以用来创建环境
- 安装
brew install anaconda
echo 'export PATH="$PATH:/usr/local/anaconda3/bin"' >> ~/.zshrc
source ~/.zshrc
- 使用
# 新建虚拟环境
conda create --name <env>
# 激活环境
conda activate <env>
# 退出虚拟环境
conda deactivate <env>
# 删除虚拟环境
conda remove --n <env>
# 查看所有存在的虚拟环境
conda env list
# 在该虚拟环境中安装依赖
conda install <pkg>
包管理
pip
# 显示已经安装的包
pip list
# 显示可升级的包
pip list -o
# 显示包的详细详细,例如版本、作者、安装位置等
pip show <pkg>
# 安装指定版本
pip install <pkg>==<version>
# 升级到最新版本
pip install --upgrade <pkg>
# 批量安装
pip install -r requrements.txt
# 输出依赖
pip freeze > requirements.txt # 所在python环境安装的所有python包(项目没有用到的包也会被包括下来)
pip install pipreqs
pipreqs . --encoding=utf8--force
# 卸载包
pip uninstall <pkg>
# 卸载包及其依赖
pip install pip-autoremove
pip-autoremove <pkg> -y
pipenv
# 安装包
pipenv install <pkg>[==<version>]
#查看依赖关系
pipenv graph
# 清除pipefile.lock文件中声明以外的包
pipenv clean
# 按照pipefile.lock中的依赖声明下载所有依赖
pipenv sync
# 更新指定包
pipenv update <pkg>
# 导出requirements.txt
pipenv lock -r > requirements.txt
# 从requirements.txt导入
pipenv install -r requirements.txt
# 使用底层的pip
pipenv run pip
pypi
- pypi 是 Python Package Index 的首字母简写,表示的是 Python 的 Package 官方索引
- 地址: https://pypi.org/simple
- 国内访问官方源比较慢,可以使用以下镜像源:
# 使用镜像源安装
pip install -i <mirror> <pkg>
# 更换默认镜像源
pip config set global.index-url <mirror>
- 也可以通过把以下内容写到
~/.pip/pip.conf
文件来配置
[global]
index-url = https://pypi.doubanio.com/simple
[install]
trusted-host = pypi.doubanio.com
发布自己写的包
// TODO