2015-09-15 24 views
8

Python komut dosyası başka bir python komut dosyasına içe aktarıldığında, bir .pyc komut dosyasının oluşturulduğunu biliyorum. Linux bash terminalini kullanarak .pyc dosyası oluşturmanın başka bir yolu var mı?Python komut dosyasından .pyc dosyası nasıl oluşturulur

+0

$ python -c "import script" yapamaz mı? – Yichun

+1

['python -m compileall'] (https://docs.python.org/2/library/compileall.html) –

+0

Bence pyc yapmak için 'zipfile' kullanmayı denemelisiniz. Bunu yapmak çok kolay. Kodunuzu src olmadan dağıtmak için bunu kullanabilirsiniz. – xiaohen

cevap

5

py_compile modülünü kullanabilirsiniz. Komut satırından (-m seçenek) onu çalıştırın:

bu modül bir komut dosyası olarak çalıştırılan

, ana() komut satırında adlı tüm dosyaları derlemek için kullanılır.

Örnek:

$ tree 
. 
└── script.py 

0 directories, 1 file 
$ python3 -mpy_compile script.py 
$ tree 
. 
├── __pycache__ 
│   └── script.cpython-34.pyc 
└── script.py 

1 directory, 2 files 

compileall benzer işlevsellik gibi bir şey yapacağını kullanmak sağlar

$ python3 -m compileall ... 
... derlemeye dosyaları veya kaynak dosyalarını içeren dizinleri vardır

, yinelemeli olarak. Eski module.py yılında if __name__ == '__main__': blok yürütmek değil, çünkü

$ tree 
. 
├── module.py 
├── __pycache__ 
│   └── script.cpython-34.pyc 
└── script.py 

1 directory, 3 files 
$ python3 -c 'import module' 
$ tree 
. 
├── module.py 
├── __pycache__ 
│   ├── module.cpython-34.pyc 
│   └── script.cpython-34.pyc 
└── script.py 

1 directory, 4 files 

-c 'import module'-m module farklıdır:


Başka bir seçenek modülü içe aktarmaktır. Bu aynı dizinde your_script.pyc dosya oluşturur

python -m compileall <your_script.py> 

:

6

aşağıdaki komutu kullanın.

Ayrıca olarak dizin geçirebilirsiniz:

python -m compileall <directory> 

Bu dizinde

Diğer bir yol tüm .py dosyaları için dosyaları .pyc yaratacak

import py_compile 
py_compile.compile("your_script.py") 
gibi başka bir komut dosyası yaratmaktır

Ayrıca, your_script.pyc dosyasını da oluşturur. Dosya adını komut satırı argümanı olarak alabilirsin