在IDLE中,为了共享(即import引用)新创建的模块,可以对其进行发布
引用自《HeadFirst for python》一书
- 准备发布阶段:
- 为模板创建一个文件夹,之后将模板文件复制到这个文件夹中
- 在这个文件夹中创建一个名为“setup.py”的文件,以下代码为setup.py文件的内容
from distutils.core import setup
setup(
name='nester', #模板文件名
version='1.0.0', #此模板版本,也就是第一版本
py_modules=['nester'], #模板的元数据与setup函数的参数关联
author='hfpython',
#以下参数用的是《HeadFirst for python》里的数据,可以与之不同
author_email='hfpython@headfirsttlabs.com',
url='http://www.headfirstlabs.com',
description='A simple printer of nested lists',
)
注意点:在IDLE中创建.Py文件和模板文件时,保存时通常会保存这段代码:“Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32Type "copyright", "credits" or "license()" for more information.>>>”和“>>>” 记得将其去掉,否则会报错。
- 构建发布
- 构建一个发布文件:在模板文件夹中打开终端,键入 (Windows10系统) 如果你使用的是Linux系统,则键入$ python3 setup.py sdist
- 仍然在此终端中运行,输入以下命令(在Linux则为$ sudo python3 setup.py install)
- 就此发布已经准备就绪,可以引用模板了(import 模板)
- 发布成功后,模板所在的文件夹里会自动新添加一些新文件和文件夹
接下来,以《HeadFirst for Python》中的实例来演示在IDLE中导入模板的过程:
注意点:导入模板nester后 ,记得把python的工作目录修改到指定数据文件存在的文件夹中 (如,sketch.txt在chapter3中
)
以上代码简要解析:
导入nester模板,修改python解释器的工作目录,指向数据文件(sketch.txt)所在的文件夹,创建两个空列表,以用来存放分解后的文本信息,即Man说的话,和Other Man说的话。随后,采用with open() as filename:,创建两个空文本文件,用来存放经过‘格式调整’的文本信息
格式调整代码:nester.py
import sys
#参数a_list接受一个列表,indent使两个API变为可选,level控制缩进格数
def print_lol(a_list,indent=False,level=0,fh=sys.stdout): #参数涉及sys,记得导入import sys
for each_item in a_list:
if isinstance(each_item,list):
print_lol(each_item,indent,level+1,fh)
else:
if indent:
for l in range(level):
print("\t",end='',file=fh)
print(each_item,file=fh)
相应的数据文件,可根据《Headfirst for python》书中给定的链接下载