2017-02-14 30 views
14

Tôi đang sử dụng Python 3.3.3 và tôi đã cố gắng xây dựng một tệp .exe từ một tập lệnh .py đơn giản.Lỗi Python, PyInstaller: không có mô-đun có tên là "Mã hóa" và codec hệ thống bị thiếu

Kịch bản của tôi trông như thế này:

import encodings 

print('Test') 

và thực hiện một cách chính xác.

Khi tôi cố gắng xây dựng nó với PyInstaller với lệnh này:

pyinstaller --onefile Testmodul.py

và cố gắng mở .exe của tôi nó xuất hiện với lỗi này: Fatal Python error: Py_Initialize: unable to load the file system codec, ImportError: No module named 'encodings'

Tôi đã cố gắng nhập khẩu 'mã hóa' module trong testcript của tôi nhưng nó vẫn không hoạt động, tôi cũng đã cố gắng py2exe và nó cũng không hoạt động ở tất cả.

Tôi có làm gì sai không? Tôi có phải thiết lập một cái gì đó trong PATH của tôi? đường dẫn chính xác đến "C: \ Python33" được bao gồm trong đó rồi.

EDIT: Đối với tất cả mọi người với vấn đề này: Tôi đã từ bỏ, và sau khi cài đặt cửa sổ và python mới và tất cả các thứ khác, tôi đã thử lại, giống như trước và nó hoạt động mà không có vấn đề gì. rất đáng thử nếu bạn thực sự tuyệt vọng!

+0

Bạn có bất kỳ ý tưởng nào 'dữ liệu mã hóa SYS của bạn ở đâu', làm thế nào để làm việc 'mã hóa' python? Tất cả các chi tiết hệ điều hành trong sử dụng công cộng? Khởi tạo trung bình 'không được đăng ký'. Câu hỏi này liên quan đến cấp độ thông tin 'python' của bạn. Vì vậy, một thủ thuật: mã này hoạt động trên cos nhàn rỗi được cấp quyền rất nhiều và đăng ký (không công khai) trên nhiều dịch vụ/lớp. Khởi tạo kiểu 'vĩnh viễn/tạm thời' nào? – dsgdfg

+0

Vâng, tôi biết 'đây không phải là bình luận low_level'! – dsgdfg

+0

Bản sao của http://stackoverflow.com/questions/5694706/py-initialize-fails-unable-to-load-the-file-system-codec –

Trả lời

2

Điều này có thể do pyinstaller không bao gồm mô-đun ở vị trí đầu tiên. bạn có thể thử 2 giải pháp.

1) Xác định đường dẫn đến mô-đun của bạn trong biên soạn:

  • PyInstaller --onefile --paths =/path/to/mô-đun Testscript.py

2) Xác định đường đi từ file .spec:

  • chạy lệnh này đầu tiên (trong thư mục PyInstaller của):

    python Makespec.py --onefile /path/to/yourscript.py 
    
  • bây giờ bạn có tệp .spec. mở nó trong trình soạn thảo văn bản của bạn và thêm đường dẫn đến các mô-đun của bạn vào đường dẫn.

    pathex=['C:\\path\\to\\module'] 
    
  • sau đó, xây dựng chương trình của bạn:

    python Build.py /path/to/yourscript.spec 
    

3) Sử dụng ẩn nhập khẩu:

  • PyInstaller --onefile --hidden nhập khẩu = môđun Testscript.py
  • bạn cũng có thể chỉ định nhập ẩn trong tệp .spec.
+0

Hoặc bạn có thể (từ bất kỳ thư mục nào nếu pyinstaller nằm trong đường dẫn của bạn) chạy "pyinstaller /path/to/your.spec" – Back2Basics

0

Bạn đang sử dụng phiên bản windows nào (7 hoặc 10)?

Vấn đề này có vẻ là tương đối cho người sử dụng đặc quyền ... và giả sử nó cũng tương tự như this issue, trước tiên bạn có thể cố gắng chạy exe ​​tập tin của bạn với đặc quyền quản trị viên, và nếu nó được failling một lần nữa, cố gắng chạy " Pyinstaller "từ một số cmd.exe chạy với quyền quản trị viên.

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