2012-12-22 8 views
5

Kiedyś rozpowszechniłem moje programy python z setuptools.setup. Teraz chcę użyć distutils.core.setuppunkt wejścia skryptu distutils.core.setup?

Z setuptools użyłem kodu podobnego do tego:

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" ] } 
    ... 
) 

chcę zrobić to samo z distutils - ale nie ma entry_points dostępny. Jak mogę to zarządzać? Jak mogę określić moje nowe polecenie?

Odpowiedz

8

Nie możesz, nie z distutils. To nie obsługuje entry_points, to jest funkcja tylko setuptools.

Zamiast tego należy użyć setuptools; obsługuje Python 3.

+0

Okay, dziękuję! Więc distutils może być używany tylko do instalowania modułów Pythona, a nie do instalowania "poleceń" ?! – tuxtimo

+0

Dokładnie; 'distutils' występuje również w Pythonie 2.' setuptools' jest rozszerzeniem 'distutils'. –

+0

Od lipca 2013 r. Jest "do zrobienia" "setuptools". – guettli

2

Z distutils skrypty są tylko pliki, jak w poniższym przykładzie:

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

w skrypcie konfiguracyjnym, należy użyć parametru skryptów do listy tych plików.

Działa to znakomicie na systemie Unix i może działać w systemie Windows, jeśli ludzie/instalatorzy prawidłowo ustawiają powiązania plików (nie są generowane żadne obwoluty binarne, na przykład to, co robi setuptools). Rozszerzenie .py będzie potrzebne dla systemu Windows i będzie w porządku (niepotrzebne i dla wielu ludzi brzydkie) na Uniksie.

Daleko od ideału, ale może działać, jeśli odbiorcy są na przykład programistami lub nie używają systemu Windows.

Powiązane problemy