python---三方包和模块的安装
这里就不讲三方包和模块的概念以及什么发展史了,直接进主题;
安装方式:分为本地安装和远程安装
本地安装:
1.对于单文件模块,直接拷贝到相关文件夹,存放在sys.path包含的路径都可以,一般存放在Lib/site package文件夹中;
2.对于带setup.py的文件,a,打开命令行工具,b,切换到setup.py所在目录,c,执行命令python setup.py install(python2.x版本),执行命令python3 setup.py install(python3.x版本),注意如果项目使用的是distutils打包,则命令没问题,如果项目使用setuptools打包,而本地又没有安装setuptools则会报错;
安装setuptools:在https://pypi.python.org/pypi这个网址下载压缩文件,依然使用python setup.py install命令安装;
3.安装.egg文件,只需要用easy_install egg文件就可以了;eay_install是setuptools的脚本,所以需要先安装setuptools;
4.安装.whl文件,也可以使用easy_install whl文件,当然最好还是使用pip install .whl文件,在使用pip的时候,还是应该先安装pip,安装pip很简单,也是通过easy_install pip;
5.远程安装,自动从远程地址检索,下载,安装某个模块,之前我们安装setuptools的时候就是手动去检索,下载和安装的;远程安装其实和手动安装一个流程;可以通过easy_install安装,也可以通过pip install安装,其实这两个方式都是setuptools的功能;我们还可以从下面的命令行中看出,检索地址就是之前我们的搜索地址,安装路径也是在Lib/site_packages里面;
6.easy_install安装到不同的python版本,使用easy_install-X.X 库名;X.X是python版本,默认安装是按照环境变量配置的先后顺序,默认安装在最前面的python版本;
7.easy_install安装包的不同版本,使用easy_install"库名 限定符 版本 【,限定符版本】",【】部分是可选,限定符就是>,<,=;使用==,如果已经安装这个版本,则切换到这个版本;查看当前哪个版本属于活动状态直接查看easy_install.pth文件就可以;
easy_install-3.6 "requests <2.14.1"
easy_install-3.6 "requests == 2.14.1"
8.easy_install更新包的版本,使用easy_install --upgrade 包名就可以了;
9.easy_install卸载包。手动卸载:删除easy_install.pth里面对应的包名,删除包文件,只需要两步就可以手动删除,easy_install.pth主要作用就是记录当前通过easy_install.pth安装的包,导入模块时的路径检索;命令卸载:easy_install -m 包名,这个命令其实就是把包名从easy_install.pth里面移除;
10.easy_install -m 包名的真正作用:其实这个命令的真正作用是动态切换库的版本,首先我们把easy_install.pth里面的包名移除,这样解释器就不会找到一个固定的包版本了,现在就可以使用以下命名:
import pkg_resources
pak_resources.require("包的具体版本")
11.easy_install切换安装源:我们知道包都是托管在国外的服务器上的,我们在国内安装的时候会很慢,所以我们就可以切换安装源,使用国内的镜像地址,相当于是在国内的服务器上面下载,就会快很多,切换安装源其实就是去修改easy_install 的下载地址,我们找到下面这个地址,打开easy_install.py文件,然后去把https://pypi.python.org/pypi地址改成国内的就可以了,比如豆瓣镜像地址:https://pypi.douban.com/simple/,使用这个地址下载就会快很多;
Python\Python36-32\Lib\site-packages\setuptools-39.0.1-py3.6\setuptools\command
easy_install的常用操作也就讲完了,现在开始pip的常用操作,pip是基于setuptoos的安装命令;
1.切换安装源:一次性切换:pip install --index-url https://pypi.douban.com/simple/requests,这种方式就是指定检索,只会在这个地址去下载。还有一种扩展检索,用于在官网上下载没有之后去检索的地址:pip install --extra-index-url https://pypi.douban.com/simple/requests;永久性切换:需要在c://users/你的用户名/创建pip文件夹/文件夹下面创建pip.ini文件,然后把下面内容考进去:下面内容就表示把安装源切换成了豆瓣的地址;
[global]
index-url = https://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com
2.安装在不同环境中:方式1,python -m pip install requests(python2.x) python3 -m pip install requests(python3.x);方式2,py -2 -m pip install requests,py -3 -m pip install requests;第二种方式是因为python的安装包实际上在系统中安装了一个启动器py.exe,我们可以通过启动器去调用不同版本的python去执行某些脚本;
3.查看包的信息:所以已经安装的包:pip list,不被依赖的包:pip list --not-required;过期的包:pip list --outdated;查看某个包的具体信息:pip show xxx;
4.搜索包:pip search xxx,指定路径检索 pip search -i 检索地址 xxx;
5.安装指定版本:pip install "模块 限定符 版本号【,限定符版本】 "其实就是把之前的easy_install换成现在的pip install;
6.升级包:pip install --upgrade 包名;
7.卸载包:pip uninstall 包名;如果是通过easy_install安装的会自动删除easy_install.pth文件对应的包路径,删除对应的.egg包文件;如果是通过pip.install安装会直接删除对应的包文件;
8.生成冻结需求文档:将当前安装的第三方包记录,存储到指定文件中,以后可根据这个需求文档去安装三方包;命令是:pip freeze > ./requirements.text; ./指的就是当前目录;根据冻结需求文档安装三方包:pip install -r requirements;这个命令会把需求文档里面所有的三方包都安装,这样就比一个一个去装简便不少;
9.三方模块的版本说明:版本主要是由三部分组成:n1.n2.n3;n3的含义是当版本的bug修复之后,n3就加一,n2的含义是当新增一个小功能之后,n2加一同时n3应该置零,这里我们必须要知道的是n3就是针对版本的bug,当我们增加了小功能,升级了版本,针对这个版本目前还没有bug所以必须是置零的,同样的道理,当作了一个很大的修改之后,必须修改了之前的api,这时候n1就加一,同时n2和n3也要置零,因为针对当前的版本,我们没有新增过小功能,也没有解决过bug,所以自然应该置零了;当以后自己发布库的时候也应该遵循这种规则;