هل يمكنني استخدام Zipimport لشحن ثعبان مضمن؟
-
02-10-2019 - |
سؤال
حاليًا ، أقوم بنشر توزيع Python الكامل (Python 2.7 MSI الأصلي) مع تطبيقي. وهو خادم ويب مضمن مصنوع من Delphi.
اقرأ هذا, ، أتساءل عما إذا كان من الممكن تضمين ملفات Python اللازمة مع تطبيقي ، لتقليل ملفات التحميل وتجنب التعارض مع العديد من إصدارات Python.
لدي خبرة سابقة مع بيثون لدلفي لذلك أحتاج فقط إلى معرفة ما إذا كان شحن Python Dll + Zip فقط مع البرامج النصية الخاصة بـ Distro + ستعمل (وإذا كانت موجودة أي تحذيرات يجب أن أعرفها أو عينة حيث يمكنني النظر)
المحلول
zipimport
يجب أن تعمل بشكل جيد بالنسبة لك - لست على دراية ببيثون لدلفي ، لكنني أشك في أنها تعطل هذه الوظيفة (تطبيق التضمين يستطيع افعل ذلك ، لكنه خيار غير عادي). فقط تذكر أن ما يمكنك الضغط عليه والاستيراد مباشرة هو الوحدات النمطية المرمزة بالثعب .pyc
أو .pyo
رموز البايت) - DLLS (حتى لو تم إعادة تسميتها باسم .pyd
S ؛-) يجب أن تكون على القرص ليتم تحميلها (لذلك إذا كان لديك zipfile معهم ، فسوف تحتاج إلى إلغاء الضغط في بداية التطبيق ، على سبيل المثال في دليل مؤقت).
علاوة على ذلك ، لا تحتاج حتى إلى الضغط الكل الوحدات النمطية ، فقط من أنت بالفعل بحاجة إلى (عن طريق الإغلاق التعريفي) - ويمكنك بسهولة معرفة الوحدات النمطية التي هي بالضبط ، مع modulefinder وحدة من مكتبة بيثون القياسية. مثال على صفحة التوثيق التي أشرت إليها للتو يجب أن توضح الأشياء. انقطاع سعيد!
نصائح أخرى
نعم هذا ممكن.
أنا في الواقع أكتب البرنامج النصي التلقائي في بيثون مع Zipimport library
. أنا بالفعل أدرجت كل شيء .py
الملفات في بلدي zip
بالإضافة إلى تكوين ملفات أو ملفات XML التي تحتاجها تلك البرنامج النصي.
ثم أسمي أ .command
ملف استهداف أ __main__.py
الفصل الذي يعيد التوجيه نحو السيناريو المطلوب وفقًا لما قاله sys.argv
المعلمات التي هي مفيدة حقا!