如何使python命令行应用程序可以全局访问?
我用python编写了一个命令行应用程序。 问题是我希望用户在安装命令行后可以全局使用该命令。 我编写了命令行,发布了这个包,但我不知道如何让这个包作为系统命令全局地供用户使用 例如:如何使python命令行应用程序可以全局访问?,python,command-line-interface,Python,Command Line Interface,我用python编写了一个命令行应用程序。 问题是我希望用户在安装命令行后可以全局使用该命令。 我编写了命令行,发布了这个包,但我不知道如何让这个包作为系统命令全局地供用户使用 例如: pip install forosi 之后,用户可以在任何地方全局运行该命令。比如: forosi help 我假设您的包目录中有一个应该在src/forosi.py中运行的主文件,但是如果它不同,您应该能够调整它 首先,您希望将脚本重命名为forosi,而不使用.py扩展名 其次,在文件顶部(现在称为f
pip install forosi
之后,用户可以在任何地方全局运行该命令。比如:
forosi help
我假设您的包目录中有一个应该在
src/forosi.py
中运行的主文件,但是如果它不同,您应该能够调整它
- 首先,您希望将脚本重命名为
,而不使用forosi
扩展名.py
- 其次,在文件顶部(现在称为
)添加以下内容:forosi
- 在软件包的
中,您需要使用setup.py
选项scripts
setuptools.setup(
...
脚本=['src/forosi'],
...
)
这就是需要对代码进行最少重构的方法。如果在作为脚本入口点的某个python文件中碰巧有一个
main()
函数,则只需将以下内容添加到setup.py中即可,而不是上述内容:
设置(
...
入口点={
'控制台脚本':['src.forosi:main'],
}
...
)
在这两种情况下,要在本地构建包,请运行
python3 setup.py bdist_wheel
这将在dist/
目录中创建一个名为package\u name-version--.whl
的控制盘文件。这是pypi包的官方发行版
要安装此软件包,请运行:
pip3 install dist/package_name-version-<info>-.whl
能否添加有关在本地安装此类软件包的说明?如果我的cli有3个命令,该怎么办?像“forosi login”、“forosi logout”@Phineas如果您想在本地安装,首先运行
python3 setup.py bdist\u wheel
,然后运行pip3 install dist/*
@tokyodeloveler在这种情况下,您必须使forosi
脚本处理参数。我建议调查一下,我认为在您的答案中添加安装说明会很有用
pip3 install dist/package_name-version-<info>-.whl
pip3 install dist/*