近期周围很多朋友询问,Python如何管理包和模块,并且很多常用的包使用pip安装的时候,总是因为网络问题中断,在学习新包时造成了很大的挫败感,这些问题也是之前自己在学习过程中,遇到的痛点,所以抽出精力,整理了下之前关于这块的学习笔记,形成文章,希望给其他python道友以帮助,也给自己后续查阅带来方便。

Python语言的核心能快速上手并且极具吸引力的是其异常丰富和强大的包,这些包给我们封装好了日常工作中遇到的问题或需求的各种解决方案,所以在python基础知识较为牢固时,遇到具体问题,具体学习对应的包即可。

而学习各种包的第一步,就是将这个包安装到本地或部署到服务器上,本文主要说明在使用pip安装和管理包时遇到的较为常见的问题和解决方案,尤其是镜像安装(因为众所周知的原因,国内访问pipy可能会出现问题等)

特别注意:以下示意代码,均是在电脑终端内完成执行。

一、pip基础讲述

1.1 概述

在电脑上安装完毕python后(不会的自行百度,类似安装常规软件),其会自动安装pip命令,并会包含常用的内置包和模块,对于学习python基础知识而言,再安装个sublime等便可以直接学习了,但如果希望安装其他的包,则需要使用pip命令,以下会详述关于pip命令相关知识。

以下命令,均在终端执行

1.1.1 pip常用命令

一般在学习和使用Python的时候,最常用的是安装或者删除指定的包。

pip常用命令
命令 说明 示意
install 

安装包,后面跟需安装的包名,可一次性安装多个包

可安装已下载到本地的包

也可用于升级pip 命令

pip install packagename1  packagename2 

pip install pillow-4.2xxxxxxx.whl

pip install –upgrade pip

uninstall  卸载包,后面跟需卸载的包名,可一次性卸载多个包 pip uninstall packagename1  packagename2
list 罗列当前已安装的包,会包含包名和版本号 pip list

1.1.2 获取帮助

如果需要获取帮助,或者想进一步了解一些命令的使用信息,可以使用help获取信息。

命令 说明 示意
pip –help 获取关于pip命令的帮助信息,会罗列pip所有的命令 pip –help
pip help command 获取关于指定pip命令的帮助信息 pip help install

 

1.2 依赖打包和部署

一般在自己电脑或者本地服务器上完成某个python项目的开发,或者自己希望将平时的python开发环境(主要是包依赖)完全的copy到另一台电脑时,则需要对某项目的依赖包进行打包,然后在新的服务器或者电脑上重新部署,这样就可以实现自己编写的python代码,在新服务器或电脑上可以运行正常。

1.2.1 依赖包打包

第一步,使用freeze命令,将当前电脑上已经安装的包,收集报名和版本号,并导出为txt文件,并可对导出的txt文件进行二次编辑,删除明确不需要的包,不过一般不建议如此,因为实际开发项目时,都是在指定的虚拟环境内完成,该环境只会安装项目依赖的包。

pip freeze > path_name 
#以下为示例,即将依赖文件导出到当前文件夹内,文件名为requirements.txt
pip freeze > requirements.txt 

1.2.2 重新部署

然后可以将以上导出的txt文件,copy到新的服务器或电脑上,并记住copy的路径,一般是放到新电脑指定项目指定虚拟环境的根文件夹下

pip install -r path_name
#以下为示例,即依赖包的txt文件在当前文件夹内,文件名为requirements.txt
pip install -r requirements.txt

1.3 变更默认使用的python版本

一些使用mac的朋友,因为mac内置的是python2版本,导致:

  1. 在终端内使用pip命令时,默认一般是使用的pip2版本,每次都要输入pip3才能使用pip3版本,如果一不留神,在使用的时候,就会出现意想不到的错误
  2. 在终端使用python命令时,默认一般使用的是python2版本,每次需要显式输入python3才行。

以下将展示如何修改pip和python的默认版本,主要是修改.bash_profile配置文件,该文件主要用于配置用户级环境变量,和Python相关的,包括搜索模块的路径等变量,均在该文件内进行配置。

#主要需修改电脑的配置文件,此处主要针对Mac电脑
#主要修改.bash_profile配置文件
#1、切换到用户路径,并创建.bash_profile文件
cd ~
sudo touch .bash_profile
#2、编辑模式打开以上配置文件
vi .bash_profile
i
#3、插入以下两行语句
alias python="/usr/local/bin/python3.8" #插入此句,修改输入python命令语句时,对应运行的python的默认版本
alias pip="/usr/local/bin/pip3.8" #插入此句,修改输入pip命令语句时,执行的对应pip的默认版本
#4、保存退出并执行生效
ESC
:wq
source ~/.bash_profile

二、pip镜像安装

使用pip进行安装的时候,一般访问的是pypi的服务器,找寻相关的包并自动下载安装,但在国内,一旦某包相对较大时,有极大可能会出现安装过程中因网络原因导致下载中断等问题。

故可以使用镜像服务器进行安装,这些服务器在国内,一般相较于直接访问pypi,其访问和下载速度会得到极大提升。

2.1 临时使用指定镜像安装

#如果希望只是临时使用某个镜像服务器安装指定的包,则可以用以下语句:
pip install -i mirror_url_path packagename
#具体例子如下,比如,使用清华大学的镜像安装  scrapy 包
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy

2.2 变更默认安装源

如果希望后续使用pip安装所有包的时候,均使用指定的镜像服务器,则可以做以下配置

#如果希望变更默认pip命令安装源,则需要pip的配置文件
#针对mac,pip的配置文件地址为 ~/.config/pip/pip.conf,一般使用以下两个命令修改该文件内的信息
#将某镜像地址修改为默认
pip config set global.index-url mirror_url_path  #指定镜像服务器域名地址
pip config set global.timeout number #设置连接超时时间,以秒为单位,指定number秒后,连接超时 
pip config set install.trusted-host hostname #将以上镜像服务器的域名加入到Install命令的信任域名列表内

#具体例子
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.timeout 300
pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn

#如果希望删除以上参数的值,则可以用unset命令,比如删除timeout参数配置
pip config unset global.timeout

2.3 国内常见的镜像服务器域名地址

#国内比较常用的镜像地址,本人选择的是阿里云的镜像服务
http://pypi.douban.com/simple/ #豆瓣
https://pypi.tuna.tsinghua.edu.cn/simple  #清华开源
https://mirrors.aliyun.com/pypi/simple/  #阿里云,比较靠谱,最起码可以安装jupyter
https://pypi.mirrors.ustc.edu.cn/simple/  #中科大
https://pypi.hustunique.com/ #华中理工
https://pypi.sdutlinux.org/  #山东理工