[python] ............................................................

2016-07-11 Tema obsahu Nicholas Randall Forystek
...
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Django a debianí balí?kovací systém

2016-07-11 Tema obsahu David Rohleder
Zdar Věroši,

díky, to vypadá zajímavě. Mrknu na to a konečně bude nějaká příležitost
zajít na PyVo :-)

Osobně si poslední dobou připadám jako stará struktura, takže docker
kontejnery a virtualenv jsou pro mne trochu moc novot najednou :-)

Mimochodem - ty virtualenv mně teda přijdou jako pěkná prasárna
vzhledem k potřebám aktualizací systému a neexistující vazbě mezi
virtualenvem a systémem (z mého pohledu je to takové z nouze ctnost
řešení).

David


Věroš Kaplan píše v Po 11. 07. 2016 v 22:57 +0200:
> Ahoj Davro,
> 
> Velmi podobně to teď řeším - .RPM by mělo být self-contained - až na
> data.
> 
> v /opt/cool-app/virtualenv je virtualenv (s vlastními verzemi
> pythonových knihoven)
> v /opt/cool-app/ je zbytek aplikace
> v /etc/systemd/.../cool-app.service je konfigurace wsgi, aby se celá
> ta aplikace spustila.
> 
> A celou tuhle špinavou práci ( git repo || -> .RPM || .DEB) za mně
> dělá Jenkins jako wrapper nad fpm, tak mne existence dvou zamíchaných
> adresářů netrápí. Pro to fpm ( https://github.com/jordansissel/fpm )
> si pouštím čisté VM (nebo dneska Docker kontejnery), takže mne
> netrápí, že v systému je nepořádek.
> 
> Když zajdeš na oběd, tak to můžu ukázat. Nebo můžu udělat na nějakým
> PyVu malý talk. Jen mám pocit, že to je věc, která je známá a nkoho
> by nezajímala.
> 
> Myslím, že je trošku matoucí to, že "Django app" (tedy
> znovupoužitelná komponenta pro vývojáře) je jiná věc, než to co
> považuji za "app" já, jako admin. 
> 
> --Věroš
> PS: Doufám, že odpovídám na správný thread a na to co se ptáš.
> 
> 2016-07-11 22:13 GMT+02:00 David Rohleder :
> > David Rohleder píše v Po 11. 07. 2016 v 22:04 +0200:
> > > 
> > > Chtěl jsem k tomu přistoupit jako ke standardnímu pythonovému
> > řešení
> > > -
> > > vyrobit setup.py ze setuptools, pomocí nich to nainstalovat do
> > > nějakého
> > > adresáře a pak na tom adresáři spustit balíčkovací nástroje, ale
> > > zatím
> > > se zasekávám na těch minimálně dvou adresářích potřebných pro
> > každou
> > > appku. Ten django přístup se mně v tomto případě moc nelíbí.
> > >
> > 
> > 
> > ještě jsem uvažoval o tom, že bych prostě tu appku celou zkopíroval
> > do
> > projektového adresáře, tj.
> > 
> > $ django-admin startproject app1
> > $ cd app1 (dostanu se do adresáře projektu)
> > $ django-admin startapp appX
> > $ mv appX/* app1
> > 
> > a tento výsledek zabalil.
> > 
> > Viděl by v tom někdo nějaký problém?
> > 
> > Díky
> > 
> > David
> > 
> > ___
> > Python mailing list
> > python@py.cz
> > http://www.py.cz/mailman/listinfo/python
> > 
> > Visit: http://www.py.cz
> > 
> 
> 
> -- 
> --V.Kaplan
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> Visit: http://www.py.cz
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Django a debianí balí?kovací systém

2016-07-11 Tema obsahu Věroš Kaplan
Ahoj Davro,

Velmi podobně to teď řeším - .RPM by mělo být self-contained - až na data.

v /opt/cool-app/virtualenv je virtualenv (s vlastními verzemi pythonových
knihoven)
v /opt/cool-app/ je zbytek aplikace
v /etc/systemd/.../cool-app.service je konfigurace wsgi, aby se celá ta
aplikace spustila.

A celou tuhle špinavou práci ( git repo || -> .RPM || .DEB) za mně dělá
Jenkins jako wrapper nad fpm, tak mne existence dvou zamíchaných adresářů
netrápí. Pro to fpm ( https://github.com/jordansissel/fpm ) si pouštím
čisté VM (nebo dneska Docker kontejnery), takže mne netrápí, že v systému
je nepořádek.

Když zajdeš na oběd, tak to můžu ukázat. Nebo můžu udělat na nějakým PyVu
malý talk. Jen mám pocit, že to je věc, která je známá a nkoho by
nezajímala.

Myslím, že je trošku matoucí to, že "Django app" (tedy znovupoužitelná
komponenta pro vývojáře) je jiná věc, než to co považuji za "app" já, jako
admin.

--Věroš
PS: Doufám, že odpovídám na správný thread a na to co se ptáš.

2016-07-11 22:13 GMT+02:00 David Rohleder :

> David Rohleder píše v Po 11. 07. 2016 v 22:04 +0200:
> >
> > Chtěl jsem k tomu přistoupit jako ke standardnímu pythonovému řešení
> > -
> > vyrobit setup.py ze setuptools, pomocí nich to nainstalovat do
> > nějakého
> > adresáře a pak na tom adresáři spustit balíčkovací nástroje, ale
> > zatím
> > se zasekávám na těch minimálně dvou adresářích potřebných pro každou
> > appku. Ten django přístup se mně v tomto případě moc nelíbí.
> >
>
>
> ještě jsem uvažoval o tom, že bych prostě tu appku celou zkopíroval do
> projektového adresáře, tj.
>
> $ django-admin startproject app1
> $ cd app1 (dostanu se do adresáře projektu)
> $ django-admin startapp appX
> $ mv appX/* app1
>
> a tento výsledek zabalil.
>
> Viděl by v tom někdo nějaký problém?
>
> Díky
>
> David
>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>



-- 
--V.Kaplan
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Django a debianí balí?kovací systém

2016-07-11 Tema obsahu David Rohleder
David Rohleder píše v Po 11. 07. 2016 v 22:04 +0200:
> 
> Chtěl jsem k tomu přistoupit jako ke standardnímu pythonovému řešení
> -
> vyrobit setup.py ze setuptools, pomocí nich to nainstalovat do
> nějakého
> adresáře a pak na tom adresáři spustit balíčkovací nástroje, ale
> zatím
> se zasekávám na těch minimálně dvou adresářích potřebných pro každou
> appku. Ten django přístup se mně v tomto případě moc nelíbí.
> 


ještě jsem uvažoval o tom, že bych prostě tu appku celou zkopíroval do
projektového adresáře, tj.

$ django-admin startproject app1
$ cd app1 (dostanu se do adresáře projektu)
$ django-admin startapp appX
$ mv appX/* app1

a tento výsledek zabalil.

Viděl by v tom někdo nějaký problém?

Díky

David

___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Django a debianí balí?kovací systém

2016-07-11 Tema obsahu David Rohleder
Petr Viktorin píše v Po 11. 07. 2016 v 21:31 +0200:
> 
> > problém je v tom, že takto django moc nefunguje a zatím musí mít
> > člověk minimálně dva adresáře - jeden se samotným djangem
> > (settings.py a spol.) a další se samotnou aplikací.
> > 
> > Ví někdo, jak se správně vyrábí django balík pro nějakou linuxovou
> > distribuci (debian, RH)? Případně jak na to? Nerad bych se dopustil
> > nějaké prasárny, která by mně do budoucnosti zkomplikovala práci.
> Ahoj! Já do Djanga moc nedělám a balíčkuju jen pro Fedoru, ale
> takhle 
> bych to dělal já:
> 
> Z každé appky můžeš vytvořit reusable appku [0], a tu zabalit
> zvlášť. 

jo. V současnosti mám ale pouze jednu appku a pokud budu psát další
appku, tak budu chtít, aby byla kompletně nezávislá na ostatních django
projektech.

> Pokud ti v "hlavním" projektu zbyla nějaká funkcionalita (models,
> views, 
> templates, ...), tak vytvoř novou zvláštní reusable appku a tyhle
> věci 
> dej do ní.

nemělo by tam nic zbýt.


> V projektu ti pak zbudou jenom moduly jako settings.py, urls.py, 
> wsgi.py, které zabal zvlášť, a všechno ostatní tomu dej jako
> závislosti.

To by potenciálně šlo, ale osobně bych rád spíš dospěl do stavu, kdy
bude settings.py (a všechno, co je iniciální součástí projektu)
součástí té jedné appky a tím pádem bych měl pouze jeden adresář s
celým projektem včetně té jediné appky.

> 
> Nejde to udělat tak, že každá aplikace bude separátní instance Djanga
> – 
> takhle to opravdu nefunguje. Např. 'django.contrib.auth', která
> definuje 
> model User, je taky appka, a spousta ostatních appek ji používá, ale 
> nedá se dost dobře spustit sama o sobě.

až tak moc jsem to samozřejmě nemyslel. django.contrib.auth je patrně
appka, nicméně z mého pohledu je to součást standardní distribuce
djanga - pokud nějakým způsobem sahá do databáze, tak to dělá pro každý
projekt zvlášť.

Já bych si to představoval následovně: Když přistupuju ke dvěma adresám

http://server/app1
http://server/app2

tak bych chtěl, aby každá z těch webových adres byla oddělena na úrovni
apache serveru pomocí nějakého

Alias app1 /usr/share/lib/.../pythonXX/app1

...


Alias app2 /usr/share/lib/.../pythonXX/app2

...


Každá aplikace totiž může být:

 - vyvinutá pro jinou verzi djanga
 - vyvinutá pro jinou verzi pythonu
 - můžu mít dvě instance jedné aplikace, které budou používat různé
databáze


Navíc bych byl rád, aby bylo možné běžet různé verze djanga (kvůli
různě napsaným aplikacím), čehož je možné dosáhnout pomocí virtualenv,
ale to už se do toho zamotávám až příliš, pro začátek bych rád
dokonvergoval do stavu jedna aplikace - jeden balík.

Zatím mám dost pocit, že je v tomto django postaveno dost nešikovně a
nikdo s reusable apps moc nepočítal.

Snažil jsem se podívat na nějaký django projekt zabalený jako balíček
pro debian, ale zatím jsem přišel pouze na openstack dashboard, což je
teda dost moloch na to, abych se v tom jednoduše vyznal.

Chtěl jsem k tomu přistoupit jako ke standardnímu pythonovému řešení -
vyrobit setup.py ze setuptools, pomocí nich to nainstalovat do nějakého
adresáře a pak na tom adresáři spustit balíčkovací nástroje, ale zatím
se zasekávám na těch minimálně dvou adresářích potřebných pro každou
appku. Ten django přístup se mně v tomto případě moc nelíbí.

David

___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Re: [python] Django a debianí balí?kovací systém

2016-07-11 Tema obsahu Petr Viktorin

On 07/11/2016 08:26 PM, David Rohleder wrote:

Ahoj,

mám tak trochu problém nalezením řešení pro jednu konkrétní situaci:

Máme vlastní django aplikaci a rádi bychom ji zabalili jako debianí
balík. Z mého pohledu potřebuju něco typu - jedno django - jedna
aplikace. Bohužel django používá jinou filozofii - jedno django - mnoho
aplikací (které také sdílejí jednu databázi a pod).

Když django startuje projekt, tak vytvoří základní kostru pro aplikace
ve tvaru:

myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
wsgi.py

každá aplikace si pak vytvoří svůj vlastní podstrom

myproject/
manage.py
blog/
__init__.py
models.py
managers.py
settings.py
views.py
urls.py
templates/

cílem je, aby byly jednotlivé aplikace v rámci jednoho djanga tzv.
self-contained.


Já mám ovšem pocit, že toto není úplně šťastné řešení a chtěl bych, aby
každá aplikace byla separátní instancí djanga (a o řízení se staral
třeba apache) - žádné sdílení databáze mezi jednotlivými aplikacemi a
pod.

Cílem je, abych mohl vytvořit debianí balík tak, abych mohl vedle sebe
nainstalovat několik oddělených aplikaci (které mezi sebou nemají žádný
vztah). Ideálně tak, že bych měl pouze adresář

myproject/
manage.py
myproject/
__init__.py
urls.py
wsgi.py
models.py
managers.py
views.py

urls.py
templates/

problém je v tom, že takto django moc nefunguje a zatím musí mít člověk 
minimálně dva adresáře - jeden se samotným djangem (settings.py a spol.) a 
další se samotnou aplikací.

Ví někdo, jak se správně vyrábí django balík pro nějakou linuxovou distribuci 
(debian, RH)? Případně jak na to? Nerad bych se dopustil nějaké prasárny, která 
by mně do budoucnosti zkomplikovala práci.


Ahoj! Já do Djanga moc nedělám a balíčkuju jen pro Fedoru, ale takhle 
bych to dělal já:


Z každé appky můžeš vytvořit reusable appku [0], a tu zabalit zvlášť. 
Pokud ti v "hlavním" projektu zbyla nějaká funkcionalita (models, views, 
templates, ...), tak vytvoř novou zvláštní reusable appku a tyhle věci 
dej do ní.
V projektu ti pak zbudou jenom moduly jako settings.py, urls.py, 
wsgi.py, které zabal zvlášť, a všechno ostatní tomu dej jako závislosti.


Nejde to udělat tak, že každá aplikace bude separátní instance Djanga – 
takhle to opravdu nefunguje. Např. 'django.contrib.auth', která definuje 
model User, je taky appka, a spousta ostatních appek ji používá, ale 
nedá se dost dobře spustit sama o sobě.


[0] https://docs.djangoproject.com/en/1.9/intro/reusable-apps/



___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

[python] Django a debianí balí?kovací systém

2016-07-11 Tema obsahu David Rohleder
Ahoj,

mám tak trochu problém nalezením řešení pro jednu konkrétní situaci:

Máme vlastní django aplikaci a rádi bychom ji zabalili jako debianí
balík. Z mého pohledu potřebuju něco typu - jedno django - jedna
aplikace. Bohužel django používá jinou filozofii - jedno django - mnoho
aplikací (které také sdílejí jednu databázi a pod).

Když django startuje projekt, tak vytvoří základní kostru pro aplikace
ve tvaru:

myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
wsgi.py

každá aplikace si pak vytvoří svůj vlastní podstrom 

myproject/
manage.py
    blog/
__init__.py
models.py
managers.py
settings.py
views.py
urls.py
templates/

cílem je, aby byly jednotlivé aplikace v rámci jednoho djanga tzv.
self-contained.


Já mám ovšem pocit, že toto není úplně šťastné řešení a chtěl bych, aby
každá aplikace byla separátní instancí djanga (a o řízení se staral
třeba apache) - žádné sdílení databáze mezi jednotlivými aplikacemi a
pod.

Cílem je, abych mohl vytvořit debianí balík tak, abych mohl vedle sebe
nainstalovat několik oddělených aplikaci (které mezi sebou nemají žádný
vztah). Ideálně tak, že bych měl pouze adresář 

myproject/
manage.py
myproject/
__init__.py
urls.py
wsgi.py
        models.py
managers.py
views.py

urls.py
templates/

problém je v tom, že takto django moc nefunguje a zatím musí mít člověk 
minimálně dva adresáře - jeden se samotným djangem (settings.py a spol.) a 
další se samotnou aplikací.

Ví někdo, jak se správně vyrábí django balík pro nějakou linuxovou distribuci 
(debian, RH)? Případně jak na to? Nerad bych se dopustil nějaké prasárny, která 
by mně do budoucnosti zkomplikovala práci.

Dík

David
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz