我经常遇到一些python包(我使用pip安装),可以像终端上的独立二进制文件一样访问它。不只是一个python模块。
我想了解创建可以由$pip install mypackage
(或$python setup.py install
)安装的软件包的标准方法
也可以从任何地方获得$mypackage
。我知道我可以通过$python -m mypackage
访问__main__.py文件。但我希望我的包能够像存储在/ usr / bin中的任何二进制文件一样运行。
我不是在寻找任何别名/路径变量hack,也不想创建.deb / .rpm的东西。
编辑:我从评论框获得了帮助。最终,setuptools已经有了选项。 Setuptools Documentionsetup()函数的entry_point参数可以解决这个问题。
setup(
# other arguments here...
entry_points={
'console_scripts': [
'foo = my_package.some_module:main_func',
'bar = other_module:some_func',
],
'gui_scripts': [
'baz = my_package_gui:start_func',
]
}
这里entry_point
采用一个字典,其值包含一个列表。创建了两个名为foo
和bar
的CLI脚本,分别包含来自main_func
和some_func
的函数my_package.some_module
和other_module
。也可以通过此方法创建Gui脚本。