分发python命令行工具的最佳方法是什么?

dbr*_*dbr 40 python command-line packaging

我当前的setup.py脚本运行正常,但它将tvnamer.py(工具)安装tvnamer.py到site-packages或类似的地方..

我可以setup.py安装tvnamer.pytvnamer,和/或是否有安装命令行应用程序的更好的办法?

Bla*_*rad 34

尝试entry_points.console_scriptssetup()调用中的参数.正如setuptools文档中所述,这应该做我认为你想要的.

要在这里重现:

from setuptools import setup

setup(
    # other arguments here...
    entry_points = {
        'console_scripts': [
            'foo = package.module:func',
            'bar = othermodule:somefunc',
        ],
    }
)
Run Code Online (Sandbox Code Playgroud)

  • 当我使用Python 2.6和3.1进行尝试时,我收到一条消息:UserWarning:Unknown distribution option:'entry_points'.所以我猜它在Python(2.6和3.1)附带的`distutils`中不受支持.那么,如果我们想在PyPI上分发,是否可以使用此选项? (8认同)
  • 在Ubuntu 11.04上,安装python-setuptools.确保setup.py正在导入:'from setuptools import setup' (6认同)