Python 打包CLI脚本
Python是一种非常受欢迎和强大的编程语言,用于创建各种不同目的的大量应用程序。命令行界面脚本或CLI脚本是执行特定任务的脚本,通过命令行执行时可以自动化许多任务。对于开发人员来说,CLI脚本非常有用。
我们也可以用Python来创建这些CLI脚本。创建CLI脚本后,我们还可以将其打包并与其他程序员共享使用。因此,我们必须知道如何打包CLI脚本并进行分发。在本文中,我们将介绍打包和分发的所有必要步骤。
本文将指导您完成打包Python脚本并分发它们所需的所有步骤,从而使您能够轻松自行打包脚本。
创建命令行脚本的步骤
我们将按照以下步骤在Python中创建命令行脚本:
步骤1:导入所需库
我们需要导入argparse库来完成此任务。这个库用于解析命令行参数。
import argparse
步骤2:创建命令行脚本
我们首先需要在Python中创建一个命令行脚本或CLI脚本。这个脚本将包含在执行时要执行的主要函数。脚本还可以使用argparse库从命令行本身接受参数。以下是一个简单CLI脚本的示例:
import argparse
def greet(name):
print(f"Hello, {name}!")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("name", help="Enter name: ")
args = parser.parse_args()
greet(args.name)
这个上述脚本有一个greet函数,它接受一个名字作为参数,并在命令行中用这个名字/参数打印出写在脚本内的问候语。我们可以在终端或命令行中运行以下命令来运行这个脚本 –
python greet.py Tutorialspoint
这将执行该脚本并输出以下内容:
Hello, Tutorialspoint!
步骤3:添加依赖项和打包要求
大多数命令行脚本都会依赖其他库或软件包。这些依赖项需要包含在软件包中,以便可以与脚本一起安装。您可以通过在与脚本相同的目录中创建一个 requirements.txt 文件来添加依赖项。
如果您正在工作的项目需要几个库,则 requirements.txt 文件将包含所有这些库的名称,例如如果它需要 requests 库和 argparse 库,则 requirments.txt 文件将为:
requests
argparse
此文件指定了包需要使用requests库。
步骤4:使用Setuptools创建一个包
在创建了命令行脚本并定义了脚本所需的依赖项之后,我们可以开始使用setuptools库来创建该脚本的包。该库提供了构建和分发包的工具和功能。
要使用setuptools库,我们需要在已存在我们的脚本的目录中创建一个setup.py文件。下面是一个setup.py文件的示例−
from setuptools import setup, find_packages
setup(
name="greet",
version="0.1.0",
packages=find_packages(),
install_requires=["requests"],
entry_points={
"console_scripts": [
"greet=greet:main",
],
},
)
该文件使用setup函数定义了包的名称、版本和依赖项。它还使用entry_points字典指定了脚本的入口点。这告诉setuptools创建一个名为greet的控制台脚本,该脚本运行greet模块中的main函数。
步骤5:分发包
当我们使用setuptools库创建了CLI脚本的包后,我们的包就可以被分发并被其他用户或程序员使用了。我们可以通过PyPI或Python Package Index来分发我们的包。PyPI是一个Python包的存储库,使用户能够轻松地安装和分享包。
我们将使用twine工具将包分发到PyPI。我们需要创建两个文件,一个名为sdist用于源代码分发,另一个名为bdist_wheel用于生成wheel分发包。我们可以通过以下命令来完成这一步骤 –
python setup.py sdist bdist_wheel
这将在dist目录中创建两个分发文件:一个源分发文件(.tar.gz)和一个轮分发文件(.whl)。接下来,我们可以使用twine工具将包上传到PyPI。首先,使用pip安装twine –
pip install twine
然后,导航到 dist 目录,并使用以下命令上传您的包 –
twine upload dist/*
在此之后,我们的软件包已上传到PyPI,这使得其他用户可以在使用pip安装后使用它。
结论
在本文中,我们学习了如何创建命令行脚本的软件包,以及如何分发它。我们了解了命令行脚本的用途和目的。我们还学习了两个软件包argparse和requests。我们了解了打包命令行脚本并在PyPI上分发所需的所有步骤。通过仔细遵循文章中提到的所有步骤,您也可以轻松创建命令行脚本、打包并分发它。