2012-11-14 36 views
0

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

我从来没有试图分发Python包/模块和我没有在这一领域(至今)的经验......我已经注意到,有许多不同的系统,现在我有三个问题:

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

  2. 我如何添加怎样的一个“包装脚本”到直接执行模块而不python -m …使用户只需键入x的麻烦分布的(当然实际名称是一个比较独特的:)在壳上。

  3. 我该怎么做2.以不依赖于platfom的方式?

谢谢! :)

回答

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上正常工作。 :-)

+0

这......只是工作!谢谢! :) – dom0