مشاكل تجميع بيثون 3 و بيكت 4 مع سك-فريز
-
13-12-2019 - |
سؤال
أحاول تجميع برنامج نصي بسيط كتبته باستخدام بيثون 3 و بيكت 4 باستخدام سك-فريز ، ولكن لدي ثلاث مشاكل أنني فقط لا يمكن معرفة.
لا أستطيع الحصول على الرموز لتظهر.أنا باستخدام ملف الموارد المترجمة لذلك ، أي.استيراد أ. الحمر التي تحتوي على الموارد ، ولقد حاولت اتباع النصائح هنا, ، نسخ مجلد إيماجيفورماتس إلى مجلد المشروع الخاص بي ولكن لا شيء يبدو للعمل.
أنا لا تستخدم وحدات سيفيرل بيثون بما في ذلك تكل و تك لذلك أضفتها إلى
excludes
الخيار.ومع ذلك ، يبدو أنها لا تزال تضاف.عندما أحاول تجميع مع
base='Win32GUI'
تشغيل إكس خلق يثير استثناء:'NoneType' has no attribute 'encoding'
أنا متأكد من أن هناك مجرد شيء خاطئ مع البرنامج النصي الإعداد الخاص بي منذ وثائق سك-فريز ليست مطول جدا ، لذلك نأمل أن شخص ما يمكن أن نشير إلى المشكلة.هنا هو البرنامج النصي الإعداد.أنا لن نشر البرنامج النصي أنا تجميع لأنه طويل جدا ، ولكن إذا لزم الأمر سأحاول إنشاء نسخة موجزة للاختبار.
from cx_Freeze import setup, Executable
exe = Executable(
script='cconvert.py',
base='Win32GUI'
)
options = dict(
excludes=['curses', 'email', 'tcl', 'ttk']
)
setup(
name="Coord Convertor",
version="0.1",
description="A Coordinate converter from DMS to DD",
requires=['pyqt4 (>=4.8)', 'dtlibs (>=0.4.1)'],
data_files=['imageformats'],
executables=[exe],
options={'build-exe': options}
)
المحلول
(لاحظ بالتأكيد حول 1.)
2:في خيارات = {'بناء إكس'...، أعتقد أنه يجب أن يكون بناء (تسطير سفلي بدلا من شرطة).
3:هل تحاول الوصول إلى شيء مثل sys.stdout.encoding
في أي مكان? sys.stdout
لن يكون هناك شيء عند استخدام قاعدة وين 32 غوي.حتى أ print()
قد تؤدي المكالمة إلى ذلك.
نصائح أخرى
تم حلها.بالإضافة إلى مؤشرات توماس ، كنت بحاجة إلى 'إيماجيفورماتس' لتكون تحت 'تضمين الملفات' في الخيارات ، وليس 'داتا_فيلز'.يبدو السيناريو النهائي الخاص بي كما يلي:
from cx_Freeze import setup, Executable
exe = Executable(
script='cconvert.pyw',
base='Win32GUI'
)
options = dict(
excludes=['curses', 'email', 'tcl', 'ttk', 'tkinter'],
include_files=['imageformats']
)
setup(
name="Coord Convertor",
version="0.1",
description="A Coordinate converter from DMS to DD",
requires=['pyqt4 (>=4.8)', 'dtlibs (>=0.4.1)'],
executables=[exe],
options={'build_exe': options}
)