2015-10-27 15 views
7

Tôi đang cố gắng xây dựng một ứng dụng với cx_freeze và esky. Nó đã được làm việc trước (ok, có thể một số tháng trước đây. Kể từ đó, python 3,5 đã đi ra ngoài).'importlib._bootstrap' không có thuộc tính 'SourceLoader'

Tôi có ngoại lệ sau đây:

File "/usr/lib/python3.5/site-packages/esky/util.py", line 578, in compile_to_bytecode 
    loader = importlib._bootstrap.SourceLoader()  
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceLoader' 

Tôi đang sử dụng:

  • Python 3.5.0
  • Esky 0.9.9 (mới nhất) từ pypi
  • cx_freeze 4.3. 4-2

Và tôi đang sử dụng Manjaro (Linux). Tôi không thể tìm ra vấn đề xuất phát từ đâu. Bạn có thể cho tôi một tay không?

Trả lời

1

mmm có thể có một lỗi có nhìn vào mã nguồn:

if sys.version_info[:2] < (3, 1): 
    bytecode = imp.get_magic() + struct.pack("<i", 0) 
    bytecode += marshal.dumps(compile(source_code, compile_filename, "exec")) 
elif sys.version_info[:2] < (3, 4): 
    bytecode = imp.get_magic() + struct.pack("<ii", 0, 0) 
    bytecode += marshal.dumps(compile(source_code, compile_filename, "exec")) 
else: 
    loader = importlib._bootstrap.SourceLoader()  
    code = loader.source_to_code(source_code, '<string>') 
    bytecode = importlib._bootstrap._code_to_bytecode(code, mtime=0, source_size=0) 

Bạn có thể thử để thay thế dòng đó với:

loader = importlib._bootstrap_external.SourceLoader()

Nếu mà công trình thì hãy thử sử dụng một ít phiên bản hơn 3.5 và gửi lỗi trong trang vấn đề github của họ.

+0

Hum, nó vẫn không hoạt động, nhưng vì lý do khác: '' 'AttributeError: module 'importlib._bootstrap' không có thuộc tính '_code_to_bytecode'''' tại dòng 580 của cùng một tập tin. Tốt hơn một chút, chúng tôi di chuyển hai dòng phía trước :) – Rififi

+1

Có, bởi vì dòng đó cũng phải được thay đổi thành'bytecode = importlib._bootstrap_external._code_to_bytecode (mã, mtime = 0, source_size = 0) – lapinkoira

+0

Đây chỉ là một hotfix, có lẽ nhiều điều sẽ không hoạt động, vì vậy tôi nghĩ rằng nó chỉ là một chút lỗi trong python3.5 hoặc nó có một số vấn đề – lapinkoira

6

Tôi đã gặp phải sự cố tương tự này ngay hôm nay.

Chạy các lệnh sau trong thiết bị đầu cuối đã giải quyết được sự cố của tôi.

➜ ~ pip install --upgrade pip 
➜ ~ pip install --upgrade virtualenvwrapper 
➜ ~ mkvirtualenv -p /usr/local/bin/python3 test_env 
Các vấn đề liên quan