سؤال

أحاول تجميع برنامج نصي بسيط كتبته باستخدام بيثون 3 و بيكت 4 باستخدام سك-فريز ، ولكن لدي ثلاث مشاكل أنني فقط لا يمكن معرفة.

  1. لا أستطيع الحصول على الرموز لتظهر.أنا باستخدام ملف الموارد المترجمة لذلك ، أي.استيراد أ. الحمر التي تحتوي على الموارد ، ولقد حاولت اتباع النصائح هنا, ، نسخ مجلد إيماجيفورماتس إلى مجلد المشروع الخاص بي ولكن لا شيء يبدو للعمل.

  2. أنا لا تستخدم وحدات سيفيرل بيثون بما في ذلك تكل و تك لذلك أضفتها إلى excludes الخيار.ومع ذلك ، يبدو أنها لا تزال تضاف.

  3. عندما أحاول تجميع مع 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}
)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top