Python 可以使用pip同时安装模块和包装器脚本吗?
到目前为止,我通过以下方式与人们共享了我的Python程序:Python 可以使用pip同时安装模块和包装器脚本吗?,python,pip,publish,Python,Pip,Publish,到目前为止,我通过以下方式与人们共享了我的Python程序: 编写一个带有函数的模块 编写一个包装器脚本my_script,它使用此模块和其他包,如argparse 在PyPI上发布my_模块 将软件推送到Github,并提供一个自述文件,说明如何安装该软件: 使用pip安装我的模块安装模块 从Github下载my_脚本,并将其移动到PATH变量所指向的位置,或通过python my_脚本 这种方式似乎不错,但我想知道是否有可能一次性安装,也就是说,pip install my_softwa
my_script
,它使用此模块和其他包,如argparse
- 使用
pip安装我的模块安装模块
- 从Github下载
,并将其移动到my_脚本
变量所指向的位置,或通过PATH
python my_脚本
pip install my_software
,它可以一次安装所有东西。此外,在安装后只需键入my_script
就可以调用包装器脚本,这一点很重要
发布此类软件的最佳方法是什么?来自Setuptools文档: [在distutils中指定脚本过去很难…]setuptools修复 通过使用自动生成脚本来解决所有这些问题 正确的扩展名,在Windows上它甚至会创建一个.exe文件 这样用户就不必更改其PathText设置。通往 使用此功能可以在安装脚本中定义 指示生成的脚本应导入并运行的函数。对于 例如,创建两个名为foo和bar的控制台脚本,以及一个GUI 名为baz的脚本,您可以执行以下操作:
请注意,如果脚本是与setuptools没有直接关系的构建过程的结果(您希望在pypi上提供一个包,但希望使用cmake工具链进行构建),则需要覆盖
setuptools.command中的install\u scripts
类调用setup()
中的参数在这里很有用。@TylerGubala你能把它放在一个答案中吗,也许用一个例子来扩展一下?如果您不想从头开始编写一个示例,那么这个示例可能已经足够好了。
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',
]
}
)