🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #27775

Re: .py i .pyc

#27775
From: Łukasz Rekucki
Date: Thu, 04 Nov 2010 07:59
31 lines
3143 bytes
On Nov 4, 7:40 am, "William Bonawentura" <n...@ipartners.pl> wrote:
> Użytkownik "ds" <ad...@email.pl> napisał w wiadomościnews:iasdub$di1$1@news.onet.pl...
>
> > William Bonawentura wrote:
>
> >> Z tego co wiem pliki .pyc są przenośne - tak jak i .class w Javie.
> >> Problemem może być tylko różnica wersji Pythona, ale chyba tworząc
> >> aplikację w 2.6 masz i na serwerze 2.6.
>
> > Sprawdziłem, są przenośne. A jest coś takiego jak reverse engineering dla
> > .pyc? Bo to też ciekawe zagadnienie - oczywiście jeśli licencja pythona
> > zezwala na nieudostępnianie źródeł...
>
> Licencja Pythona jest niezaraźliwa. Ideą "pyc" (i pyo) jest właśnie
> udostępnianie wersji instalacyjnej bez źródeł. Jest to tylko kompilacja do
> bytekodu (zastąpienie słów kluczowych chunkami) więc dekompilacja w pełni
> zdradza algorytm oraz nazwy.

Nie to nie jest idea .pyc! Te pliki nie mają być przenośne - są
specyficzne dla wersji Pythona czy architektury systemu (np. 64bit vs
32bit), a porównywanie ich z .class to duże nadużycie. Jedynym celem
tych plików jest przyśpieszenie wczytywania się programów, tak żeby
nie trzeba było parsować wielkich bibliotek za każdym razem. PEP 3147
nie służy upiększeniu sposoby ich przetrzymywania, lecz rozwiązuję
realny problem trzymania plików .pyc dla różnych wersji Pythona z
jedną kopią źródeł - Ubuntu aktualnie robi X symlinków, aby to
osiągnąć.

Wrzucanie aplikacji na serwer w postaci samych .pyc to zbędna
komplikacja. Wielkość kodu to naprawdę ostatnia rzecz, która powinna
cię martwić w aplikacji.
Technical Details
Message-ID: <accdb2c5-2ac0-45d3-9372-63f6e95b88c5@d8g2000yqf.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!plix.pl!newsfeed1.plix.pl!news-out2.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!198.186.194.249.MISMATCH!news-out.readnews.com!transit3.readnews.com!postnews.google.com!d8g2000yqf.googlegroups.com!not-for-mail
References: <iac9k3$hrn$1@news.onet.pl> <4cca18a5$0$22797$65785112@news.neostrada.pl> <iadprv$dbb$1@news.onet.pl> <iaouan$2d3s$1@news2.ipartners.pl> <iar2d2$iiu$1@news.onet.pl> <iari6m$kti$1@news2.ipartners.pl> <iasdub$di1$1@news.onet.pl> <iatkgl$1le4$1@news2.ipartners.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!plix.pl!newsfeed1.plix.pl!news-out2.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!198.186.194.249.MISMATCH!news-out.readnews.com!transit3.readnews.com!postnews.google.com!d8g2000yqf.googlegroups.com!not-for-mail
From: Łukasz Rekucki <lrekucki@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: .py i .pyc
Date: Thu, 4 Nov 2010 00:59:30 -0700 (PDT)
Organization: http://groups.google.com
Lines: 41
Message-ID: <accdb2c5-2ac0-45d3-9372-63f6e95b88c5@d8g2000yqf.googlegroups.com>
References: <iac9k3$hrn$1@news.onet.pl> <4cca18a5$0$22797$65785112@news.neostrada.pl> <iadprv$dbb$1@news.onet.pl> <iaouan$2d3s$1@news2.ipartners.pl> <iar2d2$iiu$1@news.onet.pl> <iari6m$kti$1@news2.ipartners.pl> <iasdub$di1$1@news.onet.pl> <iatkgl$1le4$1@news2.ipartners.pl>
NNTP-Posting-Host: 178.73.49.85
Mime-Version: 1.0
X-Trace: posting.google.com 1288857571 29440 127.0.0.1 (4 Nov 2010 07:59:31 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Thu, 4 Nov 2010 07:59:31 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: d8g2000yqf.googlegroups.com; posting-host=178.73.49.85; posting-account=5fpXZwoAAADF-CUdCuJ-FpYxG8__-wRx
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.18 Safari/534.10,gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit