2010-09-08 29 views
7

Tak więc mam skrypt Pythona, który opiera się na kilka modułów. W szczególności pexpect i pyinoitify. Wiem, że możesz skompilować skrypt Pythona do .exe w Windows, ale czy istnieje coś relatywnie równoważnego w Linuksie? Nie interesuje mnie binarność, chciałbym móc dystrybuować mój skrypt bez potrzeby osobnej instalacji pexpect i pyinotify. Czy to możliwe/warte zachodu?Skompiluj skrypt Pythona w Linuksie

Odpowiedz

6

cx_Freeze to wieloplatformowy sposób "zamrożenia" skryptu w języku Python w samodzielną postać binarną. Zgodnie z ich strony:

cx_Freeze to zestaw skryptów i moduły do ​​zamrażania skryptów Python język wykonywalnych w taki sam sposób że py2exe i py2app zrobić. W przeciwieństwie do tych dwóch narzędzi, cx_Freeze jest platformą krzyżową i powinno działać na dowolnej platformie , na której działa sam Python. Wymaga Pythona 2.3 lub nowszego od korzysta z funkcji importowania zip obiektu, który został wprowadzony w tej wersji .

1

Generalnie, jeśli pierwsza linia jest

#!/usr/bin/env python 

a plik ma ustawić tryb "X" (chmod +x yourfile.py)

Wtedy to plik wykonywalny. Nie wymaga kompilacji.

I tak, ludzie muszą zainstalować rzeczy, od których zależy. Jest to (a) prostsze i (b) mniej zaskakujące, jeśli faktycznie wykonują instalację, więc wiedzą, co się naprawdę dzieje.

+2

Pytanie dotyczy dystrybucji skryptu wraz z jego zależnościami, a nie tylko ich wykonywania. – katrielalex

0

W systemie Linux staraj się unikać takich rzeczy. Większość menedżerów pakietów obsługuje zależności całkiem dobrze, po prostu rozpowszechniaj swój skrypt i określaj zależności, których potrzebuje.

+1

Co ma do zrobienia menedżer pakietów z modułami Pythona? – Falmarri

+0

Rozłóż swój moduł jako pakiet i zadeklaruj zależność od innych pakietów modułów, których potrzebuje. Problem rozwiązany (choć nie przenośny). – tripleee

Powiązane problemy