Czy mogę jakoś "skompilować" skrypt Pythona do pracy na PC bez zainstalowanego Pythona?
Więc mam skrypt Pythona:
myscript.py
Wykonuję to tak:
python D:\myscript.py
Jednak muszę mieć Pythona zainstalowanego i dołączonego do zmiennej środowiskowej PATH
, aby to działało.
Czy jest w jakiś sposób możliwe "spakowanie" pliku wykonywalnego Pythona za pomocą skryptu Pythona, aby inni ludzie mogli go uruchomić na swoich komputerach bez Pythona?
Jest ok, jeśli będzie działać tylko w Windows.
EDIT:
Po wypróbowaniu compile.py
dostaję ten błąd:
Traceback (most recent call last):
File "D:\stuff\compile.py", line 4, in <module>
import py2exe
ImportError: No module named py2exe
6 answers
Tutaj jest jeden sposób, aby to zrobić(Dla Windows, za pomocą py2exe
).
Najpierw zainstaluj py2exe
w oknie Windows.
Następnie Utwórz skrypt Pythona o nazwie compile.py
, tak:
import sys
from distutils.core import setup
import py2exe
entry_point = sys.argv[1]
sys.argv.pop()
sys.argv.append('py2exe')
sys.argv.append('-q')
opts = {
'py2exe': {
'compressed': 1,
'optimize': 2,
'bundle_files': 1
}
}
setup(console=[entry_point], options=opts, zipfile=None)
Aby skompilować skrypt Pythona do pliku wykonywalnego Windows, uruchom ten skrypt z programem jako argumentem:
$ python compile.py myscript.py
Wypluwa binarny plik wykonywalny (EXE) z interpreterem Pythona skompilowanym wewnątrz. Następnie możesz po prostu rozprowadzić ten plik wykonywalny.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-23 10:11:53
PyInstaller działa dobrze dla mnie, generując dość małe pakiety ze względu na wykorzystanie upx. Jego wykrywanie zależności było w tym czasie lepsze niż py2exe. Wydaje się, że nie ma dużo ostatnio rozwoju i prawdopodobnie nie działa z 3.jednak X.
Źródło w repozytorium jest lepszym punktem wyjścia niż pakiet 1.4.
Zobacz także stronę wiki o pracy z Pythonem 2.6+.
Z listy funkcji:
- opakowanie Pythona do standardowych plików wykonywalnych, które działają na komputerach bez zainstalowanego Pythona.
- Multiplatform: działa pod Windows( 32-bit i 64-bit), Linux (32-bit i 64-bit) i Mac OS X (32-bit tylko na razie, zobacz MacOsCompatibility).
- Multiversion: działa pod dowolną wersją Pythona od 1.5 do 2.7. UWAGA: Jeśli używasz Pythona 2.6+ w systemie Windows, zobacz Python26Win.
- elastyczny tryb pakowania:
- pojedynczy katalog: zbuduj katalog zawierający wykonywalny oraz wszystkie zewnętrzne moduły binarne (.dll, .pyd,. so) używany przez program.
- pojedynczy plik: zbuduj pojedynczy plik wykonywalny, całkowicie niezależny, który działa bez żadnej zewnętrznej zależności.
- Custom: można zautomatyzować PyInstaller zrobić dowolny tryb pakowania chcesz za pomocą prostego pliku skryptu w Pythonie.
- jawne Inteligentne Wsparcie dla wielu pakietów 3rd (dla ukrytych importów, zewnętrznych plików danych, itp.), aby współpracowały z Pyinstallerem po wyjęciu z pudełka (patrz obsługiwane opakowania).
- Pełna obsługa pojedynczego pliku EGG: wymagana .pliki egg są automatycznie sprawdzane pod kątem zależności i wiązane, a wszystkie funkcje specyficzne dla egg są również obsługiwane w czasie wykonywania (punkty wejścia itp.).
- częściowa obsługa katalogu EGG: wymagana.katalogi egg są automatycznie sprawdzane pod kątem zależności i pakietów, ale funkcje specyficzne dla egg nie będą działać w czasie wykonywania.
- Automatyczne wsparcie dla bibliotek binarnych używanych przez ctypes (szczegóły w CtypesDependencySupport).
- Wsparcie dla automatycznego pakowania binarnego za pośrednictwem znanej sprężarki UPX.
- Opcjonalny tryb konsoli (patrz standardowe wyjście i standardowy błąd podczas pracy).
- funkcje specyficzne dla systemu Windows:
- Wsparcie dla plików wykonywalnych podpisujących kod.
- Pełna automatyczna obsługa CRTs: nie ma potrzeby ręcznej dystrybucji MSVCR*.DLL, instalatory redist, manifesty, lub cokolwiek innego; prawdziwe aplikacje jednego pliku, które działają wszędzie!
- wybierz ikonę wykonywalną.
- W pełni konfigurowalna sekcja zasobów wersji i manifestuje się w pliku wykonywalnym.
- Wsparcie dla budowy serwerów COM.
- cechy charakterystyczne dla komputerów Mac:
- wstępne wsparcie dla pakietów (patrz MacOsCompatibility)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-12 00:01:41
Chcesz coś w rodzaju py2exe .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-11 19:21:24
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-11 19:22:28
Tutaj jest ich lista.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-11 19:44:57
Przejdź do menu Notepad++, wtyczki -- > skrypt Pythona -- > Pokaż konsolę. W nowo otwartym oknie konsoli, na dole wpisz..... execfile ("C:/path/to/your/python/file/code.py') #użyj ukośnika do przodu ( / ) zamiast ukośnika do tyłu. Naciśnij return lub kliknij przycisk run.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-09 09:01:30