2024-10-01 13:45:25 发布
网友
我用python编写了一个命令行应用程序。 问题是我希望用户在安装命令行后可以全局使用该命令。 我编写了命令行,发布了这个包,但我不知道如何让这个包作为系统命令全局地供用户使用
例如:
pip install forosi
之后,用户可以在任何地方全局运行该命令。比如:
forosi help
我将假设您在包目录中的src/forosi.py中有应该运行的主文件,但是如果它不同,您应该能够调整它
src/forosi.py
首先,您希望将脚本重命名为forosi,而不使用.py扩展名
forosi
.py
其次,在文件顶部(现在称为forosi)添加以下内容:
#!/usr/bin/env python3 ... rest of file...
setup.py
scripts
setuptools.setup( ... scripts=['src/forosi'], ... )
这就是需要对代码进行最少重构的方法。如果在脚本的入口点之一的python文件中碰巧有一个main()函数,则可以将以下内容添加到setup.py中,而不是上面的内容:
main()
setup( ... entry_points = { 'console_scripts': ['src.forosi:main'], } ... )
在这两种情况下,要在本地构建包,请运行
python3 setup.py bdist_wheel
这将在dist/目录中创建一个名为package_name-version-<info>-.whl的wheel文件。这是pypi包的官方发行版
dist/
package_name-version-<info>-.whl
要安装此软件包,请运行:
pip3 install dist/package_name-version-<info>-.whl
或者,如果dist文件夹中只有一个版本,只需
pip3 install dist/*
我将假设您在包目录中的
src/forosi.py
中有应该运行的主文件,但是如果它不同,您应该能够调整它首先,您希望将脚本重命名为
forosi
,而不使用.py
扩展名其次,在文件顶部(现在称为
forosi
)添加以下内容:setup.py
中,需要使用scripts
选项李>这就是需要对代码进行最少重构的方法。如果在脚本的入口点之一的python文件中碰巧有一个
main()
函数,则可以将以下内容添加到setup.py中,而不是上面的内容:在这两种情况下,要在本地构建包,请运行
这将在
dist/
目录中创建一个名为package_name-version-<info>-.whl
的wheel文件。这是pypi包的官方发行版要安装此软件包,请运行:
或者,如果dist文件夹中只有一个版本,只需
相关问题 更多 >
编程相关推荐