2012-11-22 37 views
7

Tôi làm việc trên hệ thống giành chiến thắng, và tôi tự hỏi một cách mà tôi có thể sử dụng một kịch bản python mà có thể chạy trong dòng cmd để khối lượng biên dịch các tập tin py. Tôi đã viết một mã python đơn giản.Làm thế nào để biên dịch tất cả các tệp py thành tệp pyc trong một thư mục bằng cách viết một tập lệnh python?

import py_compile, os, glob 
dir = 'D:\\FAS\\config' 
for f in glob.glob(dir + '\\*.py'): 
    py_compile.compile(f) 
    print "Success compile the file: %s" % f 

Nó hoạt động bất tiện và không thể biên dịch tệp trong thư mục con của thư mục. Tôi hy vọng sự giúp đỡ của bạn.

Trả lời

18
import compileall 

compileall.compile_dir('D:/FAS/config', force=True) 
+16

Ngoài ra, từ dòng lệnh: 'python -m compilelall -f D:/FAS/config' –

0

Tôi gặp sự cố tương tự khi nâng cấp mô-đun thư viện. Tôi đã có các phiên bản mô-đun khác nhau trên các nhánh git khác nhau và khi tôi chuyển nhánh, chúng ngừng hoạt động ngay cả khi tôi biên dịch lại bằng compileall.

Giải pháp đơn giản của tôi là xóa tất cả các tệp .pyc khỏi thư viện và chạy tập lệnh để biên dịch tất cả các mô-đun cần thiết. Nó đã làm việc!!

Dễ lệnh để loại bỏ các tập tin PYC find libs/ -name *.pyc -exec rm {} \;

Các vấn đề liên quan