zl程序教程

您现在的位置是:首页 >  Python

当前栏目

如何打包你的 Python 代码

2023-03-14 22:31:32 时间

安装安装工具

安装和更新最简单的方法setuptools 是pip

$ sudo python -m pip install --upgrade setuptools

示例库

创建一个简单的 Python 库,调用myhellolib 一些需要打包的示例代码。该库接受一个字符串,然后以大写字母打印该字符串。 两行代码,但是项目结构很重要,所以先创建目录树:

$ mkdir -p myhellolib.git/myhellolib

要确认此项目是可导入库(Python“模块”),请__init__.py 在代码目录中创建空文件以及包含代码的文件:

$ touch myhellolib.git / myhellolib / __init__.py
$ touch myhellolib.git / myhellolib / myhellolib.py

myhellolib.py 文件中,输入这个简单的 Python 代码:

DEF招待员(小号):
    打印(:S上())

图书馆是这样写的。

测试一下

在打包之前,请测试您的库。创建一个myhellolib.git/test.py 文件并输入以下代码:

导入myhellolib。myhellolib 作为你好

你好。问候语(“你好 Opensource.com。” )

运行脚本:

$ cd myhellolib.git
$ python 。/ test.py
你好 OPENSOURCE.COM

它有效,所以现在您可以将其打包。

设置工具

要使用 打包项目setuptools,您必须创建一个.toml 标识setuptools 为构建系统的文件。将此文本放在myhellolib.toml 项目目录中名为的文件中:

[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

接下来,创建一个名为 的文件setup.py,其中包含有关您项目的元数据:

from setuptools import setup

setup (
    name = 'myhellolib' ,
    version = '0.0.1' ,
    packages = [ 'myhellolib' ] ,
    install_requires = [
        'requests' ,
        'importlib; python_version == "3.8"' ,
    ] ,
)

信不信由你,这就是设置setuptools 所需的全部内容。您的项目已准备好打包。

打包 Python

要创建 Python 包,您需要一个构建器。一个常用工具是build,您可以使用它安装pip

$ python -m pip install build --user

构建你的项目:

$ python -m build

片刻之后,构建完成,项目文件夹中有一个名为dist. 该文件夹包含一个.tar.gz 和一个.whl 文件。 你的第一个 Python 包!以下是每一个包含的内容:

$ tar --list --file dist / myhellolib-0.0.1.tar.gz
myhellolib-0.0.1 /
myhellolib-0.0.1 / PKG-INFO
myhellolib-0.0.1 / myhellolib /
myhellolib-0.0.1 / myhellolib / __init__.py
myhellolib-0.0.1 / myhellolib / myhellolib.py
myhellolib-0.0.1 / myhellolib.egg-info /
myhellolib-0.0.1 / myhellolib.egg-info / PKG-INFO
myhellolib-0.0.1 / myhellolib.egg -info / SOURCES.txt
myhellolib-0.0.1 / myhellolib.egg-INFO / dependency_links.txt
myhellolib-0.0.1 / myhellolib.egg-INFO / requires.txt
myhellolib-0.0.1 / myhellolib.egg-INFO / top_level.txt
myhellolib-0.0.1 / setup.cfg
myhellolib-0.0.1 / setup.py

$ unzip -l dist / myhellolib-0.0.1-py3-none-any.whl 
存档:dist / myhellolib-0.0.1-py3-none-any.whl
名称
----
myhellolib / __init__.py
myhellolib /myhellolib.py
myhellolib-0.0.1.dist-info / METADATA
myhellolib-0.0.1.dist-info / WHEEL
myhellolib-0.0.1.dist-info / top_level.txt
myhellolib-0.0.1.dist-info / RECORD
- ------
6 个文件