【问题标题】:Distribute executable module分发可执行模块
【发布时间】:2012-11-14 13:12:37
【问题描述】:

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

我从未尝试过分发 Python 包/模块,而且我在该领域还没有任何经验……我已经注意到有许多不同的系统,现在我有三个问题:

  1. 哪个系统适合 Python 3(.2) 程序?分发?分发工具?安装工具?

  2. 我怎样才能在没有python -m … 的麻烦的情况下将一种“包装脚本”添加到直接执行模块的分发中,以便用户只需键入 x(当然实际名称要多一点独特的 :) 在外壳上。

  3. 如何以独立于平台的方式执行 2?

谢谢! :)

【问题讨论】:

    标签: python module distribution packaging


    【解决方案1】:
    1. 使用distributesetuptools,前者是后者的一个分支,有一些改进和更好的文档。任何一个都比 distutils 提升了一大步,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 上运行良好。 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 2011-01-01
      • 2011-01-28
      • 2017-05-01
      相关资源
      最近更新 更多