如何打包多个Python模块?


处理运行数千行代码的复杂程序会产生两个基本问题:管理代码以了解在何处实现了哪些功能,以及在发生错误时调试程序。幸运的是,这两个问题都可以通过将代码分解成多个模块,然后从不同的模块创建一个单个脚本文件来解决。

Python 提供了这种精确的功能,其中不同的 Python 模块可以打包到单个可执行脚本中。此功能允许轻松管理和调试复杂的程序。

使用zip

打包 Python 中多个模块的一种方法是,从不同的模块创建一个 zip 文件,然后在 Python 终端中执行该 zip 文件。要使用此方法,第一步是定义不同的模块,确保其中一个模块命名为 main.py,这允许编译器知道程序执行将从哪里开始。

然后应将模块压缩成单个文件,然后可以执行该文件以获得输出。

语法

以下是 Python 中执行 zip 文件的语法:

python file_name.zip

示例

在此示例中,第一步是定义 main.py 模块,该模块从 sum_fibonacci 模块导入斐波那契函数并将值 10 传递给该函数。

from sum_fibonacci import fibonacci output = fibonacci(10) print(output)

sum_fibonacci 模块中定义的斐波那契函数用于计算斐波那契数列中前 10 个数字的和,并将该值返回到主模块。

def fibonacci(term): first_val = 0 second_val = 1 sum_fibonacci = 0 for num in range(0, term): sum_fibonacci = sum_fibonacci + first_val next_val = first_val + second_val first_val = second_val second_val = next_val return sum_fibonacci

然后将 main 模块和 sum_fibonacci 模块压缩到 fibonacci.zip 中,然后可以使用下面的代码执行它以获得所需的输出。

python fibonacci.zip

输出

输出结果为斐波那契数列中前 10 个数字的和。

88

使用stickytape

打包 Python 中多个模块的另一种方法是使用 stickytape 命令。要使用 stickytape,第一步是定义需要打包的不同模块,其中一个模块应该命名为 main.py,因为执行从此模块开始。

定义所有模块后,可以使用 Python shell 中的 stickytape 命令在主模块上自动创建一个单个脚本文件,该文件可以执行以获得代码的输出。

语法

以下是使用 stickytape 创建单个文件的语法:

stickytape main.py > output_file_name.py

示例

第一步是从程序执行开始的地方定义 main.py 模块。main 模块导入其他模块的成员,并用于调用这些成员。

# Importing the members of the modules from calculate import Calculation from fact_find import factorial # Calling method of Calculation class in calculate module calc = Calculation(value=5) # Calling the factorial function in fact_find module output = factorial(calc.value) print(output)

接下来定义 calculate.py 模块中的 Calculation 类,以接收来自 main 模块的值并将其分配给 self.value 对象。

class Calculation: def __init__(self, value): self.value = value # assigning 5 as value

然后定义 fact_find 模块中的 Factorial 函数,以递归地计算 5 的阶乘。

factorial(fact): if fact == 1: return fact else: return fact*factorial(fact-1) # recursive function to find factorial

最后,使用 stickytape 将所有模块捆绑到 calculate_factorial.py 中,然后可以运行它以获得程序的输出。

# Creating a single file which bundles all the modules stickytape main.py > calculate_factorial.py

输出

输出结果是 5 的阶乘。

120

更新于:2022年11月23日

2K+ 浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.