我开发了一个程序,该程序包含一个可执行的包(即两个文件x/__init__.py
和x/__main__.py
),所以我可以使用python -m x
执行它,如果包位于python中路径。
我从未试图分发Python软件包/模块,但我还没有任何相关领域的经验......我已经注意到有很多不同的系统,现在我有三个问题:
哪个系统适用于Python 3(.2)程序?分发?的distutils? setuptools的?
如何在没有python -m …
麻烦的情况下直接执行模块的分发中添加“包装脚本”,以便用户只需键入x(当然实际名称是在shell上有点独特:)。
我怎样才能以平台独立的方式做到?
谢谢! :)
答案 0 :(得分:1)
使用distribute
或setuptools
,前者是后者的分支,有一些改进和更好的文档。任何一个都是distutils
的一大步,它是python标准库的一部分。
您需要一个控制台脚本,您可以为其定义一个入口点:
entry_points = {
'console_scripts': [
'foo = my_package.some_module:main_func',
'bar = other_module:some_func',
],
其中foo
和bar
是您可以在命令行上调用的脚本。将使用sys.argv[1:]
作为第一个也是唯一的参数调用指示的函数。
让安装工具来处理;它在Windows上运行正常。 : - )