2016-01-13 18 views
5

Với wxPython (mới nhất) được cài đặt trên OS X Lion, một nỗ lực để import wx trong các kết quả phiên dịch trong:wxPython qua py2app: "không thích hợp 64-bit kiến ​​trúc" ERROR mặc dù sở thích 32-bit thiết

File "wx/__init__.pyc", line 45, in <module> 
    File "wx/_core.pyc", line 4, in <module> 
    File "wx/_core_.pyc", line 18, in <module> 
    File "wx/_core_.pyc", line 11, in __load 
ImportError: /Users/Pyderman/Downloads/e30356784638/dist/Program.app/Contents/Resources/lib/python2.6/lib-dynload/wx/_core_.so: no appropriate 64-bit architecture 

Vì vậy, theo các hướng dẫn do man python, tôi thiết lập:

export VERSIONER_PYTHON_PREFER_32_BIT=yes 

và sau đó nhập khẩu của các công trình wx (trong thông dịch viên). Tuy nhiên, khi tôi gói chương trình vào ứng dụng OS X bằng cách sử dụng py2app, lỗi xảy ra, mặc dù tôi đang cố khởi chạy ứng dụng trong cùng một thiết bị đầu cuối nơi tôi đã đặt biến môi trường thích 32 bit.

Tôi đoán rằng bằng cách nào đó py2app không "biết" rằng 32-bit được ưa thích? Nhưng làm thế nào, và làm thế nào điều này có thể được thực thi hoặc kiểm soát?

+1

Tôi đã tìm thấy liên kết này và có vẻ như nó là lừa. [Làm thế nào để buộc py2app chạy ứng dụng ở chế độ 32 bit] (http://stackoverflow.com/questions/7472301/how-to-force-py2app-to-run-app-in-32-bit-mode) –

+0

Cảm ơn . Chưa thử bất kỳ giải pháp được đề xuất nào được đề xuất trong bài đăng đó, nhưng bạn có thể tiếp tục và gửi câu trả lời và tôi sẽ chọn giải pháp đó. – Pyderman

Trả lời

0

Hãy để tôi mở rộng một chút về những gì Steve C nói ... Các giải pháp dễ dàng sẽ được cài đặt Python 32 bit chỉ từ trang web của python như Ned gợi ý here

Một hơi cách khó khăn hơn nhưng có lẽ hơn hiệu quả dài hạn sẽ được thiết lập kiểu kiến ​​trúc để 32bit bằng cách sử dụng một cái gì đó như ditto như fviktor cho thấy. Điều này loại bỏ tất cả mọi thứ nhưng kiến ​​trúc i386 do đó, nó sẽ không cố gắng để tải bất kỳ của các phiên bản 64bit pesky.

nguồn Ditto từ fviktor:

ditto --rsrc --arch i386 YourApplication.app YourApplicationStripped.app 

Như đã đề cập nó loại bỏ tất cả các 32bit không "công cụ" mà lại làm giảm kích thước gói và đảm bảo nó sẽ không bao giờ cố gắng để tải một kiến ​​trúc 64bit.

Nếu bạn muốn có kiến ​​trúc 32 bit và 64 bit, bạn có thể đặt mức độ ưu tiên của kiến ​​trúc để có 32 bit là giá trị chính. Để làm điều này chỉnh sửa Info.plist được tạo ra bởi Py2App. Ở đây bạn có 4 tùy chọn, ppc là kiến ​​trúc powerPC 32 bit, kiến ​​trúc i386 (thường được sử dụng tôi tin tưởng), và sau đó là hai kiến ​​trúc 64bit khác nhau, x86_64 và ppc64.

Hầu hết câu hỏi của bạn có thể được trả lời here nhưng tôi tin rằng nó đủ khác để giúp ai đó hiểu rõ hơn về những gì đang xảy ra trong tương lai.

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