Przejdź do treści

Konwertuj PY na PYC

Utwórz bytecode CPython z PY source przy użyciu właściwego local interpreter i version.

Konwertuj pliki PY online

Nie mamy jeszcze dedykowanego konwertera online dla PY na PYC, ale pliki PY możesz przekonwertować online na te formaty:

Chcesz przekonwertować PY na PYC?

Daj nam znać. Kolejne konwersje do dodania wybieramy według zainteresowania.

Jak konwertować py do pyc

Środowisko wdrożeniowe może wymagać kodu bajtowego CPython zamiast pliku źródłowego albo deweloper może chcieć wygenerować pamięć podręczną importu dla projektu. Utworzenie pliku .pyc jest lokalnym etapem kompilacji wykonywanym przez interpreter Python, który będzie go uruchamiał, a nie ogólną konwersją dokumentu.

Czym jest format PY

.py to zwykły tekstowy plik źródłowy Python zawierający instrukcje, funkcje, klasy, importy, komentarze i inny kod programu. Deweloperzy tworzą i edytują pliki PY w Visual Studio Code, PyCharm, IDLE lub dowolnym edytorze tekstu. CPython analizuje kod źródłowy i kompiluje go do kodu bajtowego w pamięci przed wykonaniem; zaimportowane moduły mogą również mieć ten kod bajtowy zapisany w pliku pamięci podręcznej PYC.

Czym jest format PYC

.pyc to binarny plik kodu bajtowego generowany przez CPython. Jego nagłówek zawiera identyfikator kodu bajtowego interpretera oraz informacje o aktualności pamięci podręcznej; pozostała część zawiera serializowany kod bajtowy Python. CPython zwykle przechowuje wygenerowane pliki w katalogu __pycache__, używając nazw takich jak module.cpython-312.pyc.

Pamięć podręczna może zapobiec ponownej kompilacji niezmienionego zaimportowanego modułu, ale nie jest wykonywalnym zamiennikiem całej aplikacji i nie ukrywa bezpiecznie kodu źródłowego. Kod bajtowy można analizować lub dekompilować, a plik PYC pozostaje powiązany z konkretną implementacją i wersją Python.

Jak utworzyć plik PYC

Zainstaluj oficjalną wersję CPython wymaganą przez system docelowy, a następnie otwórz terminal w katalogu zawierającym plik źródłowy. Polecenie interpretera python może w niektórych systemach nosić nazwę python3.

  1. Skompiluj jeden plik źródłowy do standardowej lokalizacji pamięci podręcznej:
    python -m py_compile script.py
  2. Skompiluj wszystkie pliki Python w katalogu, w tym w podkatalogach:
    python -m compileall project_folder
  3. Umieść wygenerowany plik PYC obok pliku źródłowego zamiast w katalogu __pycache__:
    python -m compileall -b script.py
  4. Określ dokładną nazwę pliku wyjściowego za pomocą biblioteki standardowej:
    python -c "import py_compile; py_compile.compile('script.py', cfile='output/script.pyc')"

Katalog nadrzędny dla ścieżki cfile musi już istnieć. Użyj tych samych poleceń z python3, jeśli jest to nazwa zainstalowanego interpretera. Bezpośrednie uruchomienie skryptu zwykle kompiluje go w pamięci; to importowanie modułu zazwyczaj powoduje utworzenie jego pliku pamięci podręcznej. IDE obsługujące Python używają skonfigurowanego interpretera i mogą generować pliki PYC podczas uruchamiania lub importowania modułów projektu.

Użyj lokalnego CPython zamiast konwertera online. Usługa internetowa otrzymałaby kod źródłowy i mogłaby skompilować go przy użyciu niewłaściwej wersji Python; nie istnieje uniwersalna usługa konwersji online, która byłaby lepsza do zwykłej pracy z PY na PYC. IDE lub terminal na komputerze zapewnia tę samą kompilację za pośrednictwem wybranego lokalnego interpretera.

Zgodność i ograniczenia

Plik PYC utworzony przez CPython 3.12 zasadniczo nie może być używany przez CPython 3.11, Python 2 ani inną implementację Python. Kompiluj przy użyciu tej samej wersji głównej i podrzędnej, a najlepiej tej samej implementacji, która jest używana w środowisku wdrożeniowym. CPython może zignorować pamięć podręczną i wygenerować ją ponownie, gdy dane dotyczące znacznika czasu i rozmiaru lub dane dotyczące aktualności oparte na hashu nie będą już odpowiadać plikowi źródłowemu.

Kompilacja wykrywa błędy składni, ale nie sprawdza działania programu. Zależności środowiska uruchomieniowego, ścieżki importu, funkcje systemu operacyjnego, konfiguracja i błędy środowiska uruchomieniowego pozostają nierozwiązane. Zaimportowane pakiety nadal muszą być zainstalowane, chyba że aplikacja zostanie spakowana osobno. Do dystrybucji użyj wheel, środowiska wirtualnego, pakietu wykonywalnego lub kontenera, gdy jest to właściwe; odizolowane pliki PYC służą głównie jako pamięć podręczna interpretera lub artefakty wdrożeniowe specyficzne dla implementacji.

Porównanie formatu PY z PYC

Jak formaty PY i PYC wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.

Porównanie formatów plików PY i PYC
Cecha .PY Python source file .PYC Python compiled bytecode
Czytelny tekstowo Tak Nie
Formatowanie tekstu Podstawowy Brak
Obrazy Nie Nie
Dalsza edycja Łatwy Nie do bezpośredniej edycji
Otwiera się w przeglądarce internetowej Nie Nie
Typowy rozmiar pliku Mały Bardzo mały
Otwarty standard Tak Tak
Najlepszy do Edycja i postprodukcja Osadzanie w aplikacjach
Wprowadzono 1991 1991
Twórca Python Software Foundation Python Software Foundation
Typ MIME text/x-python —

Informacje o rozszerzeniach i typach plików zapewnia File-Extensions.org

Najczęściej zadawane pytania

Czy konwersja pliku .py do .pyc usunie mój kod źródłowy Pythona?

Tak, plik .pyc przechowuje skompilowany kod bajtowy zamiast oryginalnego, czytelnego kodu źródłowego. Jest przeznaczony do wykonywania i nie stanowi w pełni edytowalnego zamiennika pliku .py, chociaż część kodu bajtowego można poddać inżynierii wstecznej.

Czy każda wersja Pythona może uruchomić plik .pyc utworzony z pliku .py?

Nie, plik .pyc zwykle wymaga tej samej lub zgodnej wersji i implementacji CPython, która go utworzyła. Niezgodność wersji często powoduje błąd „bad magic number” lub inny błąd importu.

Dlaczego mój plik .pyc nie działa, gdy próbuję uruchomić go samodzielnie?

Plik .pyc jest zwykle kompilowany jako moduł i może zależeć od pakietu, importów, bieżącego katalogu roboczego oraz środowiska uruchomieniowego. Może też nie działać, jeśli kod źródłowy zawierał błędy składni lub zależności albo został skompilowany przy użyciu niezgodnych ustawień interpretera.

Czy można przekonwertować plik .pyc z powrotem na oryginalny plik .py?

Nie, kompilacja .py do .pyc nie jest bezstratnym procesem w obie strony. Z kodu bajtowego można odzyskać część struktury kodu, ale komentarze, formatowanie, a czasami także dokładne konstrukcje kodu źródłowego zostają utracone.

Dodatkowe formaty dla konwersji pliku
py

Konwersja odwrotna

Konwersja do .pyc
z innych formatów

Udostępnij w mediach społecznościowych:

Już pobrano

Ten plik został już pobrany. Ze względu na prywatność usunęliśmy go z serwera zaraz po pobraniu, więc nie można go pobrać ponownie. Jeśli potrzebujesz go jeszcze raz, przekonwertuj plik ponownie.