Python程序流程装包
在Python程序编写时,有一些好的习惯可以实现相同功能性的编码放到同一个文件,使用这个编码只需要import就行了。下面看这个实例:

testModel.py
class Test:
name = 'tom'
age = 0
__weight = 0
def __init__(self, n, a, w):
self.name = n
self.age = a
self.__weight = w
def speak(self):
print("Testmodel:", self.name, self.age, self.__weight)
然后,引入上边的编码:
import testModel
testModel.Test("tom", 0, 1).speak()
#Testmodel:tom01
新建Python包
新创建一个文件夹testPackages;testPackages下新创建1个空文件__init__.py,声明书这也是一个Python包,testPackages下新创建1个空文件testModel.py,用以储放函数代码。
testPackages/ ├── __init__.py └── testModel.py
然后,引入上边的编码:
from testPackages import testModel
testModel.Test("tom", 0, 1).speak()
#Testmodel:tom01
搭建Python包
使用setuptools搭建Python包,下面是实现步骤:
packaging_tutorial/ ├── LICENSE ├── pyproject.toml#应用什么样的工具(pip或build)构建项目 ├── README.md ├── src/ │ └── example_package/ │ ├── __init__.py │ └── example.py └── tests/#事例数据
pyproject.toml
[build-system] requires = ["setuptools>=42"] build-backend = "setuptools.build_meta"
setup.py是setuptools的搭建脚本,用以组装包的相关信息:名称,版本号和源代码详细地址
import setuptools
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
setuptools.setup(
name="testPackages",
version="2.2.1",
author="Author",
author_email="authorexample.com",
description="Asmallexamplepackage",
long_description=long_description,
long_description_content_type="text/markdown",
url="http://baidu.com/",
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
package_dir={"": "src"},
packages=setuptools.find_packages(where="src"),
python_requires=">=3.6",
)
setup()主要参数:
- package_dir:字典,key是包名,value是一个文件夹;
- packages:派发包必须导入的所有控制模块目录;能够手工录入,也可以用find_packages函数全自动探寻package_dir下的所有包或控制模块。
形成派发包
python3 setup.py sdist
当地组装
python3 -m pip install ./dist/testPackages-2.2.1.tar.gz
启用
from testPackages import add add.add(1, 2) #3 #在__init__.py搭建了add=testPackages.add.add,因此可以直接用 add(1, 2) #3
结语
本文关键给大家介绍了Python程序流程装包派发实例详细说明,感兴趣的小伙伴可以参考去了解一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6786.html
