2012-12-22 48 views
5

我曾經用setuptools.setup發佈我的python程序。 但現在我想使用distutils.core.setupdistutils.core.setup控制檯腳本入口點?

隨着setuptools我用類似這樣的代碼:

setup(
    name = "radish", 
    version = "0.01.00", 
    description = "Behaviour-Driven-Development tool for python", 
    author = "Timo Furrer", 
    author_email = "[email protected]", 
    url = "http://github.com/timofurrer/radish", 
    packages = [ "radish", "radish/Writers" ], 
    entry_points = { "console_scripts": [ "radish = radish.main:main", ] }, 
    package_data = { "radish": [ "*.md" ] } 
    ... 
) 

我想要做同樣的distutils - 但沒有entry_points可用。 我該如何管理?我怎樣才能指定我的新命令?

回答

8

你不能,而不是distutils。它不支持entry_points,這是一個setuptools專用功能。

改爲使用setuptools;它支持Python 3

+0

好的,謝謝!所以,distutils只能用於安裝python模塊而不能安裝「命令」? – tuxtimo

+0

確切地說; 'distutils'也出現在Python 2中。'setuptools'是'distutils'的擴展。 –

+0

自2013年7月以來''setuptools''就是要走的路。 – guettli

2

用的distutils,腳本只是文件,像這樣的例子:

#!/usr/bin/env python 
from radish.main import main 
main() 

在你的安裝腳本,可以使用腳本參數列出這些文件。

這對Unix非常有用,如果人員/安裝程序正確設置文件關聯(不會生成二進制包裝,就像setuptools所做的那樣),它可以在Windows上工作。 Windows需要.py擴展名,在Unix上可以使用(不需要,對於很多人來說很難看)。

遠非完美,但可以工作,如果你的觀衆是開發人員,例如,或不使用Windows。