基本理论
问题提出
Python,笔者常用于计算科学,故而需要一些常用的Python包提供支持,但是由于Python的包管理器pip默认的下载资源pypi是位于国外的服务器,故而在命令终端使用pip安装包时,时常会报time out超时现象的错误。(这属于计算机网络基础的问题,这里就不赘述了!)
解决方案,使用国内的pypi镜像源,将Python默认的pypi镜像源更换为国内的pypi镜像源。使用国内一些pypi镜像,有两种方式,一种是临时指定pypi源,一种是永久修改pypi源。这样,无论是使用原生Python、Anaconda、Jupyter Lab、Jupyter Notebook、PyCharm都是可以的的,因为pip包管理器在这些组件里面都是一样的,特别使用Anaconda,就不需要在重新配置国内的conda包管理器的镜像源,使用pip包管理器一样的可以。
解决方案
国内镜像源
- 【清华大学pypi镜像源】:https://pypi.tuna.tsinghua.edu.cn/simple
- 【阿里巴巴pypi镜像源】:https://mirrors.aliyun.com/pypi/simple
- 【 豆瓣(douban) 】:http://pypi.douban.com/simple/
- 【中国科学技术大学】: http://pypi.mirrors.ustc.edu.cn/simple/
在命令终端使用如下命令即可
# 查看包管理器pip的版本,至少要求pip版本在10以上
pip --version
# 如果有需要,可以升级pip到最新版本
python -m pip install --upgrade pip
# 设置全局默认pypi国内镜像源地址,只需要一个即可
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
# 可以临时使用指定的pypi镜像源,命令如下
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple packageName
设置配置文件
Windows系统
1 Win + R 打开【运行】窗口,输入%HOMEPATH%,自动跳转到用户目录
2 在打开的目录下新建一个目录,命名为pip
3 进入pip目录,新建配置文件,命名为pip.ini,注意Windows下配置文件后缀为.ini
4 打开配置文件pip.ini,输入pypi源,如下内容
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
Unix&Linux系统
1 在终端使用如下命令,新建pip配置文件,为当前登录用户Python设置pypi镜像源
vi ~/.pip/pip.config
2 在配置文件中输入pypi源,内容同上配置文件,需要简单的Vi&Vim操作命令
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
pip常用命令
- python -m pip install --upgrade pip # 升级pip
- pip install package_name # 安装包
- pip uninstall package_name # 卸载包
- pip list # 查看本地安装的包
- pip show --files package_name # 查看包是否安装
- pip list --outdated # 查看本地需要升级的包
- pip install --upgrade package_name # 升级包
- pip freeze > packages.txt # 将所有包信息输出重定向到.txt文件
- pip install/uninstall -r packages.txt # 批量安装或者卸载包
批量处理Python包
解决方案,使用virtualenv的虚拟环境(不会使用的请使用Google或者百度一下),这样为每一个项目配置一个Python的虚拟环境,在这个项目中使用的所有包的信息,都不会影响原生主机中的Python,这样有利于与隔离Python版本、项目的所需包。
# 将所有包信息输出重定向到.txt文件,包括包的所有信息,版本等等
pip freeze > packages.txt
# 批量安装或者卸载包
pip install/uninstall -r packages.txt
# 例子:使用原生的Python配置科学计算实用的常用包,默认配置好了国内镜像源
# 首先写好packages.txt信息,不需要写具体的版本号,
# pip下载时会根据Python版本自动选择最新的包的版本
# =========packages.txt的具体安装包信息=========
# scipy
# numpy
# pandas
# matplotlib
# scikit-learn
# jupyterlab
#============================================
# 在命令终端中进入,packages.txt 所在的目录位置(这需要一点简单的终端命令)
# 输入以下命令,等待安装即可!!!
pip install -r packages.txt
# 例子:使用原生的Python卸载所有的python包,默认配置好了国内镜像源
# 首先导出python所安装的所有包信息
# 使用如下命令即可,导出的文件有所有包的基本信息以及依赖包
# 将所有包信息输出重定向到.txt文件,包括包的所有信息,版本等等,输出在当前位置
pip freeze > packages.txt
# =========packages.txt的具体安装包信息=========
anaconda-navigator 1.9.12
beautifulsoup4 4.8.2
conda 4.8.2
ipykernel 5.1.4
ipython 7.12.0
jupyter 1.0.0
jupyter-client 5.3.4
jupyter-console 6.1.0
jupyter-core 4.6.1
jupyterlab 1.2.6
jupyterlab-server 1.0.6
matplotlib 3.1.3
nbconvert 5.6.1
nbformat 5.0.4
notebook 6.0.3
numpy 1.18.1
pandas 1.0.1
pandocfilters 1.4.2
Pillow 7.0.0
pip 20.0.2
scikit-learn 0.22.1
scipy 1.4.1
seaborn 0.10.0
setuptools 45.2.0.post2
spyder 4.0.1
spyder-kernels 1.8.1
#============================================
# 在命令终端中进入,packages.txt 所在的目录位置(这需要一点简单的终端命令)
# 输入以下命令,等待卸载即可!!!
pip uninstall -r packages.txt