如何使python命令行应用程序可以全局访问?

2024-10-01 13:45:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个命令行应用程序。 问题是我希望用户在安装命令行后可以全局使用该命令。 我编写了命令行,发布了这个包,但我不知道如何让这个包作为系统命令全局地供用户使用

例如:

pip install forosi

之后,用户可以在任何地方全局运行该命令。比如:

forosi help

Tags: installpip命令行用户命令应用程序地方help
1条回答
网友
1楼 · 发布于 2024-10-01 13:45:25

我将假设您在包目录中的src/forosi.py中有应该运行的主文件,但是如果它不同,您应该能够调整它

  • 首先,您希望将脚本重命名为forosi,而不使用.py扩展名

  • 其次,在文件顶部(现在称为forosi)添加以下内容:

#!/usr/bin/env python3

... rest of file...
  • 在包的setup.py中,需要使用scripts选项
setuptools.setup(
    ...
    scripts=['src/forosi'],
    ...
)

这就是需要对代码进行最少重构的方法。如果在脚本的入口点之一的python文件中碰巧有一个main()函数,则可以将以下内容添加到setup.py中,而不是上面的内容:

setup(
    ...
    entry_points = {
        'console_scripts': ['src.forosi:main'],
    }
    ...
)

在这两种情况下,要在本地构建包,请运行

python3 setup.py bdist_wheel

这将在dist/目录中创建一个名为package_name-version-<info>-.whlwheel文件。这是pypi包的官方发行版

要安装此软件包,请运行:

pip3 install dist/package_name-version-<info>-.whl

或者,如果dist文件夹中只有一个版本,只需

pip3 install dist/*

相关问题 更多 >