前面学习了Python环境的安装,这里在接着学习下如何安装第三方模块。
抛开python语言本身,python之所以能以更少的代码量,更高的效率实现与其他语言同样的功能,我想还因为python有众多第三方模块,很多时候我们想要的功能已经有第三方实现并开源出来了,这时我们只要下载第三方的模块,然后导入第三方的模块,再写上那么几句代码可能就初略实现了我们想要的功能。所以接下来,让我先学习如何安装第三方库,那么问题来了,我们从哪里找到并下载安装我们所需要的模块到我们本地的环境呢?当然,还是让我们先了解一个术语或概念。
前面我们知道了一个.py文件就是一个模块,那么当我们代码越来越多,有了很多很多的.py文件时,是否有更好的组织管理方式,让我们更加便利的管理我们的代码模块呢?
Python提供了package管理机制,让我们可以分门别类的管理我们的代码模块,包其实就是文件夹,跟普通文件夹的区别是它必须包含一个特定的文件 init.py,用以告诉python说这是一个包,并且包可以有多重,就是包内还可以有包。
通常我们都会将模块放到包内。如果没有包的话,出现重名模块就不好搞了。有包的话,只要包名不同,模块名相同也没关系。
一个 package 提供了一组关联的 Python 代码的简单复用方式。一个包(“模块”)包含了一个或多个 Python 代码文件。
一个包通过import foo.bar
或from foo import bar
的形式导入。一个目录(例如polls
)要成为一个包,它必须包含一个特定的文件__init__.py
,即便这个文件是空的。
参考资料:https://docs.djangoproject.com/zh-hans/3.0/intro/reusable-apps/
20200609补充笔记 这里所说包是一般情况下的包,即常规包,它是可以直接对应的文件系统中的目录的。Python提供有两种包类型,还有一种是命名空间包,命名空间包并不一定会直接对应到文件系统中的对象;它们有可能是无实体表示的虚拟模块,具体可参考Python官方教程–导入系统。
上面说到python公共仓库是在国外的,国内访问的话一般是很慢的,不过,国内有这个仓库的镜像,我们使用时可以使用国内源,这样下载速度就很快。
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
pip是一个python写的模块,不属于标准库,在比较旧的版本的python安装中,python环境中并不会自带pip。
但从Python 3.4开始,它默认包含在Python二进制安装程序中。
如果环境中没有PIP的话,可以从这个网址下载get-pip.py文件。
https://bootstrap.pypa.io/get-pip.py
然后运行
python get-pip.py
以下命令将从 Python Packaging Index 安装一个模块的最新版本及其依赖项,我们可以使用python命令调用pip源码模块的方式来安装:
python -m pip install SomePackage
当然,如果安装python环境时设置了相应的环境变量(Scripts目录),也可以直接使用
pip install SomePackage
(因为pip可执行文件在安装后被放在python安装目录下的Scripts目录下)
(当使用比较运算符例如 >, < 或其他某些可以被终端所解析的特殊字符时,包名称与版本号应当用双引号括起来)
python -m pip install SomePackage==1.0.4 # 指定版本号
python -m pip install "SomePackage>=1.0.4" # 最小版本号
简单点:
pip install SomePackage=1.0.4
pip install "SomePackage>=1.0.4"
当一次性需要安装多个模块是,可以通过
pip install -r requirements.txt
#
####### 示例文件-requirements.txt #######
#
###### Requirements without Version Specifiers ######
nose
nose-cov
beautifulsoup4
#
###### Requirements with Version Specifiers ######
# See https://www.python.org/dev/peps/pep-0440/#version-specifiers
docopt == 0.6.1 # Version Matching. Must be version 0.6.1
keyring >= 4.1.1 # Minimum version 4.1.1
coverage != 3.5 # Version Exclusion. Anything except version 3.5
Mopidy-Dirble ~= 1.1 # Compatible release. Same as >= 1.1, == 1.*
#
###### Refer to other requirements files ######
-r other-requirements.txt
#
#
###### A particular file ######
./downloads/numpy-1.9.2-cp34-none-win32.whl
http://wxpython.org/Phoenix/snapshot-builds/wxPython_Phoenix-3.0.3.dev1820+49a8884-cp34-none-win_amd64.whl
#
###### Additional Requirements without Version Specifiers ######
# Same as 1st section, just here to show that you can put things in any order.
rejected
green
#
pip install SomePackage-1.0-py2.py3-none-any.whl
.whl 文件是什么?后续看到资料再补了。
pip默认情形下安装的包是给系统所有用户使用的,即全局的(包被安装在python安装目录下的Lib目录中),使用–user 选项,可以将包安装到当前用户目录下。
pip install --user SomePackage
python -m``pip uninstall SomePackage
或
pip uninstall SomePackage
python -m pip install --upgrade SomePackage
或
pip install --upgrade SomePackage
pip默认使用pypi公共仓库,但是这个是国外,国内访问速度慢安装很慢,我们可以修改使用国内源。
可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple
例如:
pip install SomePackage -i https://pypi.tuna.tsinghua.edu.cn/simple
1
linux下,修改 ~/.pip/pip.conf (没有就创建一个), 修改 index-url 为国内镜像地址,内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip(xx:表示当前登录用户名,也是说在用户目录下,等同于Linux环境下所说的HOME目录下),新建文件pip.ini,内容如下
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn # trusted-host 此参数是为了避免麻烦,否则使用的时候可能会提示不受信任
**
**
参考资料:
pip官方文档
https://docs.python.org/zh-cn/3.7/installing/index.html
https://www.cnblogs.com/schut/p/10410087.html
https://simpleui.88cto.com/docs/simpleui/QUICK.html#%E6%B0%B8%E4%B9%85%E4%BF%AE%E6%94%B9