我已经创建了一个旨在从命令行使用的python脚本。我该如何包装呢?这是我的第一个python包,我已经阅读了一些关于setuptools的内容,但我仍然不确定最好的方法。
我最终使用setup.py使用了下面提到的关键配置:
setup(
....
entry_points="""
[console_scripts]
mycommand = mypackage.mymodule:main
""",
....
)
在上下文中,这是一个很好的example。
答案 0 :(得分:4)
不是使用setuptools非标准的处理方式,而是可以使用distutils
参数直接依赖scripts
setup的函数,如下所述:http://docs.python.org/distutils/setupscript.html#installing-scripts
from distutils import setup
setup(
...,
scripts=['path/to/your/script',],
...
)
它允许你保持兼容a)与所有python版本和b)不必依赖setuptools作为外部依赖。
答案 1 :(得分:3)
@Zach,鉴于您对@ soulmerge的回答的评论已经澄清,看起来您需要的是根据有关distutils - here的说明编写setup.py是你在pypi上注册的方式,here注册后如何上传到pypi - 可能(如果你需要一些额外的功能,就像distutils自己提供的那样)添加setuptools,其中{{3} 1}}是一部分,通过说明here。
答案 2 :(得分:2)
包装是什么意思?如果要在已安装python的盒子上运行单个脚本,则只需将shebang放入文件的第一行即可。
如果你想在Windows下或在没有python的盒子上执行它,你需要一些外部的东西,比如pyinstaller。
如果您的问题是关于将配置/数据文件放在何处,那么就我所知,您需要以平台为依据(例如写入registry或home folder)。
答案 3 :(得分:2)
上个月,我写了一篇回答你问题的文章。您可以在此处找到它:http://gehrcke.de/2014/02/distributing-a-python-command-line-application/
在那里,我只使用当前推荐的方法(twine,纯setuptools而不是distutils,console_scripts
字典中的entry_points
键,...),它适用于Python 2和3。
答案 4 :(得分:0)
对于那些初学者的Python包装,我建议您阅读Python Packaging Tutorial。
关于教程的注意事项:
目前,本文档仅关注Python 2.x,可能不适用于针对Python 3.x的软件包