<div dir="ltr"><div class="gmail_default" style="font-size:small">Ahoj,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">virtualenv je trošku "hack" k tomu, že konkrétní aplikace obvykle potřebuje konrétní verzi modulu (knihovny) v Pythonu. A je velké nebezpečí, že pokud se změní verze knihovny, tak se aplikace "sama rozbije". </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Pokud provozuješ nějakou starší aplikaci (napsanou třeba před 2 lety), tak jí musíš prostě zajistit 2 roky staré verze knihoven a to řeší ten virtualenv. Nebo aplikaci musí vývojář upravit pro nové (distribuční) verze knihoven, což stojí čas a peníze.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">To, že tímhle postupem musíš obsluhovat bezpečnostní aktualizace knihoven sám a nemůžeš se spolehnout na distribuci, je smutný fakt. </div><div class="gmail_default" style="font-size:small">Vyber si - buď to máš rozbitý nebo to nemáš zabezpečený. :-)</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Alternativa je používat část knihoven z distribuce (typicky stabilní knihovny typu numpy, reportlab, psycopg) a část knihoven mít ve vlastním virtualenvu.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">--Věroš<br></div><div class="gmail_default" style="font-size:small">PS: Na Docker se zatím vykašli, ale bez virtualenv se nic většího moc vyvíjet nedá.</div><div class="gmail_default" style="font-size:small"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-07-11 23:22 GMT+02:00 David Rohleder <span dir="ltr"><<a href="mailto:davro@ics.muni.cz" target="_blank">davro@ics.muni.cz</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Zdar Věroši,<br>
<br>
díky, to vypadá zajímavě. Mrknu na to a konečně bude nějaká příležitost<br>
zajít na PyVo :-)<br>
<br>
Osobně si poslední dobou připadám jako stará struktura, takže docker<br>
kontejnery a virtualenv jsou pro mne trochu moc novot najednou :-)<br>
<br>
Mimochodem - ty virtualenv mně teda přijdou jako pěkná prasárna<br>
vzhledem k potřebám aktualizací systému a neexistující vazbě mezi<br>
virtualenvem a systémem (z mého pohledu je to takové z nouze ctnost<br>
řešení).<br>
<br>
David<br>
<br>
<br>
Věroš Kaplan píše v Po 11. 07. 2016 v 22:57 +0200:<br>
<div class="HOEnZb"><div class="h5">> Ahoj Davro,<br>
><br>
> Velmi podobně to teď řeším - .RPM by mělo být self-contained - až na<br>
> data.<br>
><br>
> v /opt/cool-app/virtualenv je virtualenv (s vlastními verzemi<br>
> pythonových knihoven)<br>
> v /opt/cool-app/ je zbytek aplikace<br>
> v /etc/systemd/.../cool-app.service je konfigurace wsgi, aby se celá<br>
> ta aplikace spustila.<br>
><br>
> A celou tuhle špinavou práci ( git repo || -> .RPM || .DEB) za mně<br>
> dělá Jenkins jako wrapper nad fpm, tak mne existence dvou zamíchaných<br>
> adresářů netrápí. Pro to fpm ( <a href="https://github.com/jordansissel/fpm" rel="noreferrer" target="_blank">https://github.com/jordansissel/fpm</a> )<br>
> si pouštím čisté VM (nebo dneska Docker kontejnery), takže mne<br>
> netrápí, že v systému je nepořádek.<br>
><br>
> Když zajdeš na oběd, tak to můžu ukázat. Nebo můžu udělat na nějakým<br>
> PyVu malý talk. Jen mám pocit, že to je věc, která je známá a nkoho<br>
> by nezajímala.<br>
><br>
> Myslím, že je trošku matoucí to, že "Django app" (tedy<br>
> znovupoužitelná komponenta pro vývojáře) je jiná věc, než to co<br>
> považuji za "app" já, jako admin. <br>
><br>
> --Věroš<br>
> PS: Doufám, že odpovídám na správný thread a na to co se ptáš.<br>
><br>
> 2016-07-11 22:13 GMT+02:00 David Rohleder <<a href="mailto:davro@ics.muni.cz">davro@ics.muni.cz</a>>:<br>
> > David Rohleder píše v Po 11. 07. 2016 v 22:04 +0200:<br>
> > > <br>
> > > Chtěl jsem k tomu přistoupit jako ke standardnímu pythonovému<br>
> > řešení<br>
> > > -<br>
> > > vyrobit setup.py ze setuptools, pomocí nich to nainstalovat do<br>
> > > nějakého<br>
> > > adresáře a pak na tom adresáři spustit balíčkovací nástroje, ale<br>
> > > zatím<br>
> > > se zasekávám na těch minimálně dvou adresářích potřebných pro<br>
> > každou<br>
> > > appku. Ten django přístup se mně v tomto případě moc nelíbí.<br>
> > ><br>
> ><br>
> ><br>
> > ještě jsem uvažoval o tom, že bych prostě tu appku celou zkopíroval<br>
> > do<br>
> > projektového adresáře, tj.<br>
> ><br>
> > $ django-admin startproject app1<br>
> > $ cd app1 (dostanu se do adresáře projektu)<br>
> > $ django-admin startapp appX<br>
> > $ mv appX/* app1<br>
> ><br>
> > a tento výsledek zabalil.<br>
> ><br>
> > Viděl by v tom někdo nějaký problém?<br>
> ><br>
> > Díky<br>
> ><br>
> > David<br>
> ><br>
> > _______________________________________________<br>
> > Python mailing list<br>
> > <a href="mailto:python@py.cz">python@py.cz</a><br>
> > <a href="http://www.py.cz/mailman/listinfo/python" rel="noreferrer" target="_blank">http://www.py.cz/mailman/listinfo/python</a><br>
> ><br>
> > Visit: <a href="http://www.py.cz" rel="noreferrer" target="_blank">http://www.py.cz</a><br>
> ><br>
><br>
><br>
> -- <br>
> --V.Kaplan<br>
> _______________________________________________<br>
> Python mailing list<br>
> <a href="mailto:python@py.cz">python@py.cz</a><br>
> <a href="http://www.py.cz/mailman/listinfo/python" rel="noreferrer" target="_blank">http://www.py.cz/mailman/listinfo/python</a><br>
><br>
> Visit: <a href="http://www.py.cz" rel="noreferrer" target="_blank">http://www.py.cz</a><br>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:python@py.cz">python@py.cz</a><br>
<a href="http://www.py.cz/mailman/listinfo/python" rel="noreferrer" target="_blank">http://www.py.cz/mailman/listinfo/python</a><br>
<br>
Visit: <a href="http://www.py.cz" rel="noreferrer" target="_blank">http://www.py.cz</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">--V.Kaplan<br></div></div>
</div>