[python] Setuptools, ditutils a konfigurační soubory

Radek Kanovsky rk na dat.cz
Pátek Červenec 18 16:44:53 CEST 2008


On Fri, Jul 18, 2008 at 10:20:06AM +0200, Lumír Jasiok wrote:

> Dobrý den,
> 
> snažím se přijít na to, jak nejlépe připravit z naprogramovaného kódu 
> zdrojový balík a binární balíky. Zkouším použití setuptools a distutils 
> a jsem schopen vygenerovat .tgz balik, python egg, debian balík apod. 
> Problém nastává v okamžiku, kdy se snažím do balíku přidat soubor, který 
> je tzv. "non-package data", tedy soubor, který přímo není kód pythonu a 
> není umístěn ve standarním prefixu instalace (např. /usr/local). Typicky 
> například konfigurační soubor, který má být standardně umístěný v /etc.
> 
> Díval jsem se jak tyto situace řeší jiné projekty a většinou si na to 
> programovali různé obezličky (Makefile, který volal "python setup.py" 
> apod.). Poradíte mi nějaké "best practices"?

Asi nejlepsi by bylo udelat potomka nektereho commandu z distutils.command.
Mozna command "install_data" nebo "config", nebo vytvorit uplne novy
(je tam na to sablona distutils.command.command_template). Sam jsem to
nikdy nedelal, ale vsiml jsem si, ze spousta baliku to tak dela.
Vyhoda je v tom, ze instalace nebude zbytecne zavisla na dalsim
software kvuli kopirovani jednoho souboru.

Tohle bude fungovat pro instalaci ze zdrojaku pres setup.py. Jestli
to bude fungovat s egg balikem, to nevim. U tgz by asi taky nemel
byt problem, pokud budou v tgz cele cesty od korene.

Radek Kaňovský, Dat, s.r.o.


Další informace o konferenci Python