分发可执行模块

时间:2012-11-14 13:12:37

标签: python module distribution packaging

我开发了一个程序,该程序包含一个可执行的包(即两个文件x/__init__.pyx/__main__.py),所以我可以使用python -m x执行它,如果包位于python中路径。

我从未试图分发Python软件包/模块,但我还没有任何相关领域的经验......我已经注意到有很多不同的系统,现在我有三个问题:

  1. 哪个系统适用于Python 3(.2)程序?分发?的distutils? setuptools的?

  2. 如何在没有python -m …麻烦的情况下直接执行模块的分发中添加“包装脚本”,以便用户只需键入x(当然实际名称是在shell上有点独特:)。

  3. 我怎样才能以平台独立的方式做到?

  4. 谢谢! :)

1 个答案:

答案 0 :(得分:1)

  1. 使用distributesetuptools,前者是后者的分支,有一些改进和更好的文档。任何一个都是distutils的一大步,它是python标准库的一部分。

  2. 您需要一个控制台脚本,您可以为其定义一个入口点:

    entry_points = {
        'console_scripts': [
            'foo = my_package.some_module:main_func',
            'bar = other_module:some_func',
        ],
    

    其中foobar是您可以在命令行上调用的脚本。将使用sys.argv[1:]作为第一个也是唯一的参数调用指示的函数。

  3. 让安装工具来处理;它在Windows上运行正常。 : - )