Python学习笔记——模块(生成模块、安装第三方模块、setuptools、pip、PyPI)

为代码组命名,就得到函数
将多个函数放在一个文件中,就得到模块

如何创建模块

创建模块很简单:将包含许多函数的代码保存为.py文件,就得到一个模块

def search4vowels(word:str='Hello') -> set:
    """Return any vowels found in a word"""
    vowels = set('aeiou')
    return vowels.intersection(set(word))

def search4letters(word:str='Hello',letters:str='aeiou') -> set:
    """Return a set of 'letters' found in a 'word'"""
    return set(letters).intersection(set(word))

将代码保存为vsearch.py就得到一个模块

如何使用第三方模块(包括自己创建的模块)

在使用import语句导入模块时,解释器会在3个主要位置搜索模块:

  1. 你的当前工作目录
    这是解释器认为的你目前所在的文件夹,确保模块总在此工作目录中才能正常导入模块(这是可能的,但比较困难,不推荐)
  2. 你的解释器的site- packages位置
    这些目录包含你可能已经安装的第三方 Python模块(也包括你自己写的模块)
  3. 标准库位置
    这些目录包含构成标准库的所有模块

导入模块时,必须保证模块位于以上三个位置之一,否则解释器找不到模块,抛出ImportError错误

当前工作目录并不固定,而标准库是不能修改的
因此,应该将第三方模块安装到site- packages位置

使用setuptools将模块安装到site-packages

在Python 3.4及以上操作

  1. 创建一个发布描述
    这会明确我们希望 setuptools安装的模块。
    这里需要为模块创建(至少)两个描述文件:setup.pyREADME.txt
  2. 生成一个发布文件
    通过在命令行上使用 Python,创建一个可共享的发布文件,其中包含模块的代码。
  3. 安装发布文件
    同样地,在命令行上使用 Python,将发布文件(其中包含我们的模块)安装到 site-packages中。

按这3个步骤,就能为模块创建一个发布包。
这个包是一个压缩文件(其中包含在 site-packages中安装模块所需的全部内容)

1.创建一个发布描述

这里需要创建两个描述文件:setup.pyREADME.txt(必须这样命名)
且它们应该与模块vsearch.py放在同一个文件夹下

setup.py的文件内容

from setuptools import setup#从setuptools模块导入setup函数

setup(#setup函数接收大量参数,其中很多是可选的,这里用关键字指出哪个值赋给哪个参量
    name='vsearch', #一般按模块命名发布包
    version='1.0', 
    description='The Head First Python Search Tools',
    author='HF Python 2e',
    author_email='hfpy2e@gmail.com',
    url='headfirstlabs.com',
    py_modules=['vsearch'],#指定创建发布包时要包含的.py文件
)

README.txt文件必须存在,但其内容可以为空

2.生成一个发布文件

此时应该有三个文件vsearch.pysetup.pyREADME.txt,并且它们在同一个文件夹myModules
在windows的命令行中输入以下命令

C:\Users\13272>cd Desktop\myModules
C:\Users\13272\Desktop\myModules>py -3 setup.py sdist
#运行Python 3,执行setup.py中的代码,并传递"sdist"为参数

执行完毕后,setuptools在当前工作文件夹myModules文件夹下创建了dist文件夹
其中就有创建好的源发布文件vsearch-1.0.tar.gz(或vsearch-1.0.zip,取决于平台)
这是一个可安装的文件,其中包含了模块的源代码

3.安装发布文件

创建了源发布文件之后(作为ZIP文件或作为一个压缩tar归档文件),现在可以把你的模块安装到 site-packages了

Python3.4(及更新版本)提供pip工具
pip表示 Package Installer for Python( Python的包安装工具)

进入上一步创建的dist文件夹,在 Windows窗口中,按住Shif键不放,然后单击鼠标右键,从菜单中选择 Open command window here(在这里打开命令PowerShell窗口)在这个命令提示窗口中键入下面的命令:

PS C:\Users\13272\Desktop\myModules\dist> py -3 -m pip install vsearch-1.0.tar.gz
#运行Python 3时包括模块pip,然后让pip安装指定的压缩tar文件。

现在vsearch模块已经安装到site-packages,可使用import vsearch导入模块


ps.要卸载已有的模块,同样打开命令PowerShell窗口输入以下命令:

PS C:\Users\13272\Desktop\myModules\dist> pip uninstall vsearch

正式发布模块、获取他人的模块

PyPI(读作“ ple-pee-eye”,Python Package Index)是Python集中管理的基于web的软件存储库,让所有 Python程序员共享各种第三方 Python模块。

  • 连接互联网时,可以使用pip从PyPI自动安装包
    要了解这个网站上提供了哪些模块,可以访问PyPI网站:https://pypi.python. org/pypi
    例如
    可以用Flask轻量级Web框架构建一个Web应用
    可以用Jinja2文本模板引擎创建HTML页面

  • 要正式地共享你的模块,可以把发布文件上传到PyPI
    要了解通过PyPI上传和共享发布文件的过程,请阅读Python Packaging Authority维护的一个在线指南:https://www.pypa.io

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值