سؤال

لدي برنامج نصي إعداد قياسي ل PY2EXE الذي أقوم به بالتطبيقات المستندة إلى PYQT في ملفات Windows .EXE.

لقد جربت اليوم نصا بسيطا يستخدم وحدة Pyqwt، ولا يبدو أنه يعمل. يعمل Py2exe على ما يرام، ولكن عندما أقوم بتنفيذ .EXE، فإنه ينشئ، فهو مقالب ما يلي في ملف سجل ولا يعمل:

Traceback (most recent call last):
  File "qwt_test.pyw", line 5, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "PyQt4\Qwt5\__init__.pyo", line 32, in <module>
  File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading PyQt4\Qwt5\Qwt.pyd

عندما أنظر في PyQt4\Qwt5\ في ال build\bdist.win32\winexe\collect-2.5 الدليل، Qwt.pyd بالتأكيد هناك.

لا يبدو لي أن أجد أي شيء مفيد عبر الإنترنت فيما يتعلق بهذا الخطأ. ماذا يمكن أن يسبب ذلك؟ شكرا.

هل كانت مفيدة؟

المحلول

PY2EXE ليست هي الطريقة الوحيدة، وربما ليست أفضل طريقة، لوضع ملفات EXE لتطبيقات بيثون - على وجه الخصوص، بالكاد، إذا كان على الإطلاق يدعم Pyqt. من فضلك، أنا beesech أنت، تحقق من pyinstaller., ، والتي تعرف عن pyqt (و linux، و mac، يجب أن تهتم ...) - فقط تأكد من استخدام الخروج من رأس SVN، وليس الإصدار "الذي تم إصداره"، والذي في هذا الوقت قديم بعيدة التاريخ ( المشكلة التي نأمل أن تذهب قريبا ...).

نصائح أخرى

بعض الخيارات:

  1. حاول اللعب مع PY2XE bundle_files options (3، 2، 1) (خاصة إذا وضعتهم جميعا في كتلة واحدة مكتبة واحدة، بعض DLLات لا تحب ذلك).
  2. تأكد من نسخة من msvcp71.dll يوجد تحت Windows System32 أو في دليل قابل للتنفيذ الخاص بك.
  3. حاول استبعاد DLL صراحة (إضافة qwt.pyd إلى dll_excludes الخيار و (بعد البناء) نسخ QWT.PYD (و _qwt.pyd إذا كان موجودا) إلى المسار القابل للتنفيذ.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top