Bagaimana cara menjalankan file .pyc (compiled python)?

18

Ketika saya mengkompilasi file python, saya mendapatkan file * .pyc. Ketika saya mencoba menjalankannya, saya mendapat pesan yang mengatakan tidak ada program untuk menjalankannya. Ketika saya mencari program online melalui opsi itu, dikatakan tidak ada. Adakah yang bisa membantu saya menjalankan file di sana?

Selby Rowley-Cannon
sumber

Jawaban:

24

Karena file python Anda dikompilasi dengan byte, Anda perlu menjalankannya melalui juru bahasa python

python yourfile.pyc

Alasan Anda dapat menjalankan file .py Anda secara langsung adalah karena Anda memiliki salurannya

#!/usr/bin/python

atau

#!/usr/bin/env python

atau yang serupa di baris pertama dalam file .py. Ini memberitahu shell Anda untuk mengeksekusi sisa file dengan interpreter python.

tomodachi
sumber
3
Untuk melengkapi jawaban ini: file .pyc tidak dikompilasi dalam arti istilah yang ketat, karena ini bukan kode mesin asli. Itu, seperti yang ditulis @tomdachi, byte-code khusus-python (sangat mirip dengan Java .class), itulah mengapa masih membutuhkan penerjemah python untuk execture.
Pierre-Antoine
sebenarnya, pyc hanya dihasilkan ketika Anda mengimpor file py. jadi tidak ada gunanya menjalankan file pyc!
一 患有 癌 并且 卓越 的 工程师 来 陆家嘴 搞 金融 显然 是 是 为了
2

Untuk mendekompilasi file .pyc python3 yang dikompilasi, saya menggunakan uncompyle6OS Ubuntu saya saat ini sebagai berikut:

  1. Instalasi uncompyle6:

    pip3 install uncompyle6
  2. Untuk membuat file .py dari file .pyc Jalankan:

    uncompyle6 -o . your_filename.pyc
  3. Secara otomatis file .py baru akan dibuat dengan nama file .pyc yang sama.

Dhawaleswar
sumber
-1

Python mengkompilasi file .py dan menyimpannya sebagai file .pyc sehingga dapat mereferensikannya dalam doa berikutnya. The .pyc berisi bytecode yang dikompilasi dari file sumber Python, yang merupakan kompilasi dari interpreter Python sumber. Kode ini kemudian dieksekusi oleh mesin virtual Python. Tidak ada salahnya menghapusnya (.pyc), tetapi mereka akan menghemat waktu kompilasi jika Anda melakukan banyak pemrosesan.

Python adalah bahasa yang ditafsirkan, sebagai lawan dari bahasa yang dikompilasi, meskipun perbedaannya bisa kabur karena adanya kompiler bytecode. Kompilasi biasanya berarti mengonversi kode mesin yang paling cepat dijalankan. Tetapi penerjemah mengambil teks yang bisa dibaca manusia dan menjalankannya. Mereka mungkin melakukan ini dengan tahap peralihan.

Sebagai contoh, Ketika Anda menjalankan file sumber myprog.py, interpreter python pertama kali melihat apakah myprog.pycada (yang merupakan versi byte-kode yang dikompilasi myprog.py), dan apakah itu sebagai terbaru atau lebih baru daripada myprog.py. Jika demikian, penerjemah menjalankannya. Jika tidak ada, atau myprog.pylebih baru dari itu (artinya Anda telah mengubah file sumber), interpreter pertama mengkompilasi myprog.pyke myprog.pyc.

Ada satu pengecualian untuk contoh di atas. Jika Anda memakai #! /usr/bin/env pythonbaris pertama myprog.py, buat itu bisa dieksekusi, dan kemudian jalankan myprog.pydengan sendirinya.

Shashank Sai Sangu
sumber
1
Selamat Datang di Tanya Ubuntu ! Ini adalah penjelasan yang bagus tentang mengapa pycfile ada tetapi Anda belum menjawab pertanyaan bagaimana menjalankannya. Itu dapat dikualifikasikan sebagai komentar yang sangat luas, bukan jawaban . Harap edit posting Anda untuk menambahkan jawaban yang sebenarnya.
Melebius