Grzegorz M.

Grzegorz M. www.avatec.pl

Temat: Kompilacja pythona dla linux, windows, mac

Witajcie,

Szukałem, szukałem i doszukałem się:

py2exe - dla windowsa (ale jeszcze nietestowałem)
dla maca też coś znalazłem bodajże py2app, ale nic o linuxie.

Zamierzam w niedalekim czasie napisać programik, i chciałbym zamknąć jego źródło i ułatwić jego uruchamianie osobą trzecim, jednak nie znalazłem kompilatora pod linuxa :-(

Jaki kompilator najlepszy pod winde, maca i czy jest jakiś pod linuxa ?
Piotr Maliński

Piotr Maliński Programista
Python/Django

Temat: Kompilacja pythona dla linux, windows, mac

Dajesz same pliki PYC i gotowe. Wystarczy archiwum TAR (i ew. instalacja przez setup.py). Uwzględnij też że użytkownicy Linuksa nie przepadają za aplikacjami o zamkniętym kodzie i twój "programik" większego sukcesu na tej platformie raczej nie odniesie.
Grzegorz M.

Grzegorz M. www.avatec.pl

Temat: Kompilacja pythona dla linux, windows, mac

Ale mnie nie zależy na tym czy programiści kochający open-source będą szczęśliwi - chodzi mi o zwykłych ludzi, chcących przesiąść się na linuxa, aby móc np. korzystać z aplikacji dostępnych również pod windows, ale nie interesuje ich czy kod jest zamknięty, czy otwarty.

Identycznie podchodze do tego ja - nie interesuje mnie,czy sterownik jest otwarty, czy zamkniety - ma działać !! Tak samo np. program Gimp - jest otwarty i co ? Jak dla mnie totalna porażka na kółkach, i nie nazwałbym tego alternatywą dla Photoshopa. Zamknięte oprogramowanie ma swoje plusy, otwarte swoje - bynajmniej narazie chciałbym pisać zamknięte, takie które ludzie będą mogli sobie uruchomić bez instalacji dziwnych bibliotek i dodatków z poziomu synaptica czy apta. Większość ludzi, gotowych na przejście na linuxa odstrasza właśnie podejście, że ludzie tworzący soft robią go głównie pod siebie, i jeżeli ktoś mądry nie przygotuje porządnego instalatora, czy paczki deb, rpm która ułatwi instalacje bez głupich errorów i musowej instalacji paczek x,xx,xxx sprawi że być może nowy użytkownik linuxa zostanie użytkownikiem linuxa, a nie tylko przetestuje i powróci do starego windowsa. Dlatego chciałbym podsumować, że nie zależy mi na "użytkownikach linuxa" - czyli nazwijmy ich maniakami open-source byli w pełni zadowoleni. Jeżeli nie będą potrzebowali, to po co im korzystać z tego :-)

Tyle odnoście "użytkownicy Linuksa nie przepadają za aplikacjami o zamkniętym kodzie i twój "programik" większego sukcesu na tej platformie raczej nie odniesie.".

Nawiązując teraz do PYC - szczerze mówiąc, jak to uruchomić nie posiadając pythona ?? W tą czy w tą i tak trzeba instalować go - a tutaj chodzi o kompilacje do kodu czysto binarnego, gdzie, nie potrzebny będzie żaden interpreter, czy kompilator - taki swoisty exe lub app, ale dla linuxa (takie coś jak w c++ się kompiluje).

W tą czy w tą dziękuję Ci za odpowiedź i nie odbieraj mojej odpowiedzi jako jakiś atak, jedynie starannie pielęgnowana przezemnie myśl, dlateczego linux ciągle raczkuje na desktopach i musiałem się komuś wyżalić :-)

konto usunięte

Temat: Kompilacja pythona dla linux, windows, mac

Dokladnie.. poza tym odtworzenie twojego kodu nie jest trudne. Bytecode pythona nie jest specjalnie trudny do analizy.

Co do samej dystrybucji wystarczy spakowac i dodac bootstrapa w shellu. Oczywiscie jesli user bedzie mial starszego pythona do nie uruchomi twojej aplikacji. Jak widac sam pomysl jest poroniony. Im dluzej obserwuje programistow to widze dwie tendecje. Rypanie z opensource ile sie da, ale jak dochodzi do ujawienia swojej aplikacji to tendecja do zamykania wzrasta. Chyba ze wstydu odnosnie jakosci kodu i uzytych rozwiazan....
Grzegorz M.

Grzegorz M. www.avatec.pl

Temat: Kompilacja pythona dla linux, windows, mac

Łukasz Byczyński:
Dokladnie.. poza tym odtworzenie twojego kodu nie jest trudne. Bytecode pythona nie jest specjalnie trudny do analizy.

Co do samej dystrybucji wystarczy spakowac i dodac bootstrapa w shellu. Oczywiscie jesli user bedzie mial starszego pythona do nie uruchomi twojej aplikacji. Jak widac sam pomysl jest poroniony. Im dluzej obserwuje programistow to widze dwie tendecje. Rypanie z opensource ile sie da, ale jak dochodzi do ujawienia swojej aplikacji to tendecja do zamykania wzrasta. Chyba ze wstydu odnosnie jakosci kodu i uzytych rozwiazan....

Wiesz :-) To mogę podpiąć pod wyżej napisany repost dla Piotrka :-) Zamknięcie kodu ma swoje dobre i złe strony - a jeżeli chciałbym napisać coś, co pomoże mi włożyć żarło do garnka, to nie bedę przecież czekał, aż znajdzie się jakiś daroczyńca i powie: "Masz programisto, taki fajny program napisałeś". Ile procent w polsce osób wpłaca dotacje na co kolwiek ?? to jest pytanie nr. 1 :-)

Jednak tutaj wkraczamy bardziej w komercjalizacje oprogramowania, są pomysły w mojej głowie, które chciałbym zamknąć, ale i tak udostępniać za darmo, a są takie, które wartało by sprzedać. Analiza ludzi, dlaczego zamykają kody jest wręcz nie na miejscu !!

A to, że korzystać programista chce z Opensourceowych programów, aby napisać program o zamkniętym kodzie to przecież normalne, nieprawdaż ?? Szczególnie, jeżeli tym programem ktoś chce się podzielić z ludzmi dla każdej platformy :-)

konto usunięte

Temat: Kompilacja pythona dla linux, windows, mac

Może cx_Freeze?

http://python.net/crew/atuining/cx_Freeze/

Nie korzystałem z tego, znalazłem po kilku minutach googlania :-). Mam nadzieję, że to pomoże.
Grzegorz M.

Grzegorz M. www.avatec.pl

Temat: Kompilacja pythona dla linux, windows, mac

Krzysztof Kondrak:
Może cx_Freeze?

http://python.net/crew/atuining/cx_Freeze/

Nie korzystałem z tego, znalazłem po kilku minutach googlania :-). Mam nadzieję, że to pomoże.

Witaj,

Testowałem ten programik, ale nie spełnia moich oczekiwań. Widać, że niestety nie taki python piękny jak go pisali :-( Choć ma predyspozycje.

konto usunięte

Temat: Kompilacja pythona dla linux, windows, mac

python nie jest jezykiem kompilowalnym. py2exe tylko wrzuca w execa twoj bytecode programu.
Piotr Maliński

Piotr Maliński Programista
Python/Django

Temat: Kompilacja pythona dla linux, windows, mac

Nie bronię ci tworzenia zamkniętego oprogramowania. Z OS X czy MS Windows to nie problem, ale nie rozumiesz chyba natury systemów Uniksowych. Można zrobić paczkę ze wszystkimi zależnościami - rozpakowujesz i uruchamiasz, ale wadą jest że musisz taką paczkę robić dla każdej obsługiwanej dystrybucji kompilowanej pod jej wersje bibliotek systemowych i dla każdego wspieranego wydania dystrybucji - patrz np. Lefthand, lecz czy znajdziesz pakiety ich produktów w repozytoriach dystrybucji? czy są polecane na stronach poświęconych Linuksowi? :) nie :) Ja mam "za nowe" nagłówki kernela i Lefthand nie działa :P do tego 64 bitowy system, którego oni nie obsługują bo po prostu mają za mało funduszy czy ludzi do rozwoju ich softu ;)
Chcesz pisać zamknięty soft pod Linuksa - nikt ci tego nie broni, ale wątpię osobiście czy jedna osoba jest w stanie stworzyć na tyle dobry zamknięty program, by mógł konkurować z otwartym oprogramowaniem dostępnym w repozytoriach dystrybucji wraz z jego automatycznymi aktualizacjami, czy też znacznie szybszym rozwojem (społeczność).

Dziwne dodatki, biblioteki. apt? Zupełnie nie rozumiesz co to jest Linux. Patrz na sukces Ubuntu. Obecnie instalacja oprogramowania jest bajecznie prosta i użytkownik za pomocą prostych w obsłudze graficznych GUI. Sukces Ubuntu jak i innych dystrybucji jak openSUSE świadczy o tym że ludziom się to podoba i nie chcą podejścia Windowsa ściągania z jakiś stronek jakiś tam exeków. Ten system do tego się nie nadaje i nikt tego nie potrzebuje. Linux jak reszta systemów nie jest uniwersalna dla każdego i nigdy nie będzie bo to niemożliwe. Nie zbawisz otwartego Linuksa zamkniętym oprogramowaniem.

Większość ludzi, gotowych na przejście na Linuxa odstrasza właśnie podejście, że ludzie tworzący soft robią go głównie pod siebie, i jeżeli ktoś mądry nie przygotuje porządnego instalatora, czy paczki deb, rpm która ułatwi instalacje bez głupich errorów i musowej instalacji paczek x,xx,xxx sprawi że być może nowy użytkownik linuxa zostanie użytkownikiem Linuksa, a nie tylko przetestuje i powróci do starego windowsa.

Jeden wielki LOL. Gnome, KDE, Gimp, XFCE, OpenOffice tworzą ludzie pod siebie, nie przygotowują instalatorów, paczek? Głupoty. Obecnie wszystkie topowe dystrybucje mają tak duże repozytoria, że nie trzeba szukać paczek danej aplikacji, ani martwić się o zależności - bo one wraz z tą aplikacją są w repozytorium. Osoby mocno związane z Windowsem czy Mac OS X i tak nie przejdą na Linuksa bo potrzebują specyficznych funkcjonalności tych systemów (czy to MS Office, czy Quark, czy aplikacje Adobe, czy też małe potrzeby i mała wiedza o komputerach).
Nawet w przypadku dystrybucji dla "geeków":
bash-3.2# pacman -S eclipse
rozwiązywanie zależności...
szukanie konfliktów międzypakietowych...

Celuje (5): libstdc++5-3.3.6-2 jre-6u7-1 jdk-6u7-1 unzip-5.52-4 eclipse-3.4-3

Całkowity rozmiar do pobrania: 242,09 MB
Całkowity rozmiar po instalacji: 387,96 MB

Kontynuować instalację? [T/n]
.
W Ubuntu to będzie jeszcze prostsze i bez stosowania konsoli ;)

Tworzysz aplikację - jest fajna i przydatna - trafia do repozytoriów dystrybucji i się powinieneś cieszyć że aplikacja jest ogólnodostępna dla ich użytkowników. Możesz pracować nad rozwojem aplikacji (z pomocą np. użytkowników) a nie budowaniu kilkudziesięciu pakietów o monstrualnych rozmiarach i złożoności tylko po to by dostarczyć n-potrzebnych bibliotek i zależności. Do tego użytkownik musi odwiedzać stronę w celu sprawdzania czy są aktualizacje itd. itp. Nie zrobisz lepszego odtwarzacza niż np. MPlayer. Możesz spokojnie stworzyć odtwarzacz o zamkniętym kodzie - i nawet jeżeli mógłbyś użyć wtedy bez problemów wszystkich bibliotek obsługujących multimedia pod Linuksem to paczka "bez zależności" miałaby duży rozmiar i byłaby skomplikowana (co w efekcie daje duże szanse że coś się posypie) i żadna otwarta dystrybucja nie dodałaby tego do swojego repozytorium, ani nie polecałaby/wspierałaby coś takiego. Mógłbyś dogadać $$$ się z zamkniętymi dystrybucjami jak Xandros, ale ile osób używa Xandrosa, wie co to jest i chciałoby kupić "Linuksa", a nie użyć ogólnodostęnego?

Jeżeli chcesz tworzyć zamknięte oprogramowanie pod Uniksy - nie rób tego w języku skryptowym jak Ruby czy Python, Perl. Użyj np. Javy, albo C/C++/C# - łatwiej o wygenerowanie binarek "bez" źródła.
Grzegorz M.

Grzegorz M. www.avatec.pl

Temat: Kompilacja pythona dla linux, windows, mac

Witaj Piotrze, jeżeli chodzi o Linuxy to siedzę na nich już długo, mam również jakieś w nich doświadczenie, konsoli się nie boję itp.

Ogólnie masz racje, odnośnie deb'ów, rpm'ów i tym podobnych. Synaptic też jest super narzędziem, i te całe repozytoria też mi się podobają, jednak patrzmy na statystyki:

http://www.ranking.pl/index.php?page=Ranks:RanksPage&s...

Jak widać linux klasuje się na 5 miejscu, nie jest to tragedia, tylko coraz lepiej i cieszę się, zaraz za nim mac os, a przed...

Wiem jak linux potrafi sprawić kłopot człowiekowi, który jest gotowy na niego przejść, bo wykorzystuje komputer głównie do internet/email/nasza klasa/mp3/download/skype - problem pojawia się np. w sterownikach - prawda, że coraz więcej hardwareu jest wspieranego, ale to nadal mała garstka. Nikt nie poleci do sklepu np. zmienić sobie karte graficzną, czy kamerke lub drukarke bo np. nie chodzi. Ostatnio np. miałem problem z kartą NVIDIA, która u kolegi na kompie nie chciała wskoczyć w wyższą rozdziałkę, niżeli 800x600 - a gdy już wskoczyła, nie obsługiwała OpenGL (Nvidia 7600). Po 4 godzinach męczarni zwątpiłem - gdyż nie było to warte czasu. Ja jestem za linuxem,nawet jestem za otwartym źródłem, ale niektóre rzeczy lepiej by były płatne i zamknięte, bo być może wtedy firmy będą lepiej mogli go rozwinąć.

C++/Java hmm Java odpada, bo gdy widze aplikacje i ich prędkość działania, to mnie krew zalewa. Jeżeli chodzi o C++, to niestety nie mam siły do tego języka, być może dlatego, że jego składnia nie jest aż tak prosta (mowa tutaj o programowaniu już typowo obiektowym QT/GTK+/wxWidget), python urzekł mnie swoją prostotą kodu i być może dlatego, na chwilę obecną nie ciągnie mnie do C++.

W tą czy w tą dzięki serdeczne za wypowiedzi, bo pewne słowa nawet wpłynęły na mój umysł, co zaowocowało analizą moje toku myślenia :-)

konto usunięte

Temat: Kompilacja pythona dla linux, windows, mac

Chciałem tylko zauważyć, że rozmawiacie koledzy nie na temat.
Ponadto pytanie autora wątku nie ma sensu. Ani py2exe, ani py2app nie jest kompilatorem.

konto usunięte

Temat: Kompilacja pythona dla linux, windows, mac

Popieram, to nie sa kompilatory, to są tylko aplikacje które robią z twojej aplikacji paczkę standalone, tzn. nie jest wymagane spełnienie żadnych wymagań poza zainstalowaniem paczki(takie fire'n'forget). W linuxach takim rozwiązaniem jest użycie systemu paczek właściwego dla danej dystrybucji. Dodam jeszcze, że mimo iż jestem fanem osx'a system paczek debianowych uważam za genialne rozwiązanie dla normalnego użytkownika. Zawsze ten sam proces instalacji, wyszukiwarka, ładnie i czytelnie wszystko leci, jest wersja GUI. W zasadzie sama idea python'a nie bardzo popiera zamykanie kodu, to raz, a dwa, python jest językiem interpretowanym z maszyną wirtualną, zdaje mi się że najdalej z kompilacją można się posunąć do .pyc'a, a tego całkiem wygodnie się czyta.
Piotr P.

Piotr P. Software Developer

Temat: Kompilacja pythona dla linux, windows, mac

Grzegorz Miśkiewicz:
Identycznie podchodze do tego ja - nie interesuje mnie,czy sterownik jest otwarty, czy zamkniety - ma działać !! Tak samo np. program Gimp - jest otwarty i co ? Jak dla mnie totalna porażka na kółkach, i nie nazwałbym tego alternatywą dla Photoshopa.

<ot>

Jeśli powiesz, że kupiłeś licencję PS to będziesz pierwszą osobą która ma takową licencję i od której słyszę, że Gimp w porównaniu z PS jest do kitu.

</ot>

Odnośnie kompilowania kodu aplikacji. Czemu nie napiszesz tego w C#? Wykorzystując ostatnie mono przekażesz klientowi plik exe.

Temat: Kompilacja pythona dla linux, windows, mac

czyli reasumując narzędzia do bezpiecznego zamknięcia pythonowego kodu (lub .pyc-a) nie są ogólnie dostępne (otwarte ;))?

konto usunięte

Temat: Kompilacja pythona dla linux, windows, mac

Sebastian K.:
czyli reasumując narzędzia do bezpiecznego zamknięcia pythonowego kodu (lub .pyc-a) nie są ogólnie dostępne (otwarte ;))?

Tu nie ma nic związanego z otwartością. Po prostu ich nie ma i nie widzę chętnego na horyzoncie do ich napisania. Większości programistów/twórców Pythona takie oryginalne myśli do głowy nie wpadają i jakieś wyjątkowej biedy z tego powodu nie klepią.
Stanisław P.

Stanisław P. Software designer

Temat: Kompilacja pythona dla linux, windows, mac

Sebastian K.:
czyli reasumując narzędzia do bezpiecznego zamknięcia pythonowego kodu (lub .pyc-a) nie są ogólnie dostępne (otwarte ;))?

Co rozumiesz przez "bezpiecznego"? IMHO jeśli komuś nie zależy na źródle, to nawet do niego nie zaglądnie, choćby miał. A jeśli komuś zależy tak bardzo że .pyc będzie dekompilował, to równie dobrze może dekompilować assemblera - aż takiej różnicy tu nie ma... Czyli w sumie .pyc powinien wystarczyć w każdym wypadku (jako odstraszacz tylko)

A co do robienia exe'ka - czemu nie .NET. Nawet nie trzeba zmieniać języka na c# i będzie działał na win, lin i mac
http://www.codeplex.com/Wiki/View.aspx?ProjectName=Iro...

konto usunięte

Temat: Kompilacja pythona dla linux, windows, mac

IMHO zamykanie kodu aplikacji nie jest dobrym pomysłem, a jego brak nie powoduje spadek użyteczności kodu

konto usunięte

Temat: Kompilacja pythona dla linux, windows, mac

IronPython to tylko interpreter nie kompilator.

konto usunięte

Temat: Kompilacja pythona dla linux, windows, mac

Grzegorz Miśkiewicz:
C++/Java hmm Java odpada, bo gdy widze aplikacje i ich prędkość działania, to mnie krew zalewa. Jeżeli chodzi o C++, to niestety nie mam siły do tego języka, być może dlatego, że jego składnia nie jest aż tak prosta (mowa tutaj o programowaniu już typowo obiektowym QT/GTK+/wxWidget), python urzekł mnie swoją prostotą kodu i być może dlatego, na chwilę obecną nie ciągnie mnie do C++.

Skoro się upierasz przy prostym języku to zapuść zapytanie "python obfuscator". Np.:

http://pawsense.com/python..obfuscator/
http://www.bitboost.com/
http://www.lysator.liu.se/~astrand/projects/pyobfuscate/

Może nie będzie to kompilować ale raczej skutecznie zniechęcać do modyfikacji.

Nie znam się dobrze na Linuchu, ale każdy większy pakiet komercyjny na Linucha jest też w wersji binarnej. Jak to działa - nie wiem, ale m.in. wspomniany OpenOffice też jest w wersji binarnej. Drivery Nvidii - też. Unreal Tournament 2004 - wątpie żeby dawali źródła. A więc da się.

Natomiast Linux sam w sobie nie jest chyba odpowiednim targetem dla komercyjnych aplikacji. Węża w kieszeni ma większość użytkowników Windowsa, ale co dopiero ktoś kto używa Linuxa. Przecież użytkownik Linuxa jest nim m.in. z uwagi na darmowe rozwiązania, więc z definicji nie będzie chciał płacić.

konto usunięte

Temat: Kompilacja pythona dla linux, windows, mac

Piotr Likus:
Nie znam się dobrze na Linuchu, ale każdy większy pakiet komercyjny na Linucha jest też w wersji binarnej. Jak to działa - nie wiem, ale m.in. wspomniany OpenOffice też jest w wersji binarnej. Drivery Nvidii - też. Unreal Tournament 2004 - wątpie żeby dawali źródła. A więc da się.

No pewnie. Open Office zawiera sam w sobie pythona i masakryczna ilosc bibliotek tak by mógł uruchomić sie na prawie każdym współczesnym linuchu. Drivery Nvidii sa binarne tylko na poziomie serwera X. Dla kazdej wersji wypuszczaja nowe wydanie. Unreal Tournament nie kożysta z GUI.

Następna dyskusja:

Composer dla Pythona




Wyślij zaproszenie do