هذا هو الملف التمهيدي لملحقات Python for Win32 (pywin32)، والذي يوفر الوصول إلى العديد من واجهات برمجة تطبيقات Windows من Python.
راجع CHANGES.txt للتعرف على التغييرات الملحوظة الأخيرة.
تعد المستندات قصة طويلة وحزينة، ولكن يوجد الآن إصدار عبر الإنترنت من ملف المساعدة الذي يأتي مع المثبتين (شكرًا @ofek!). الكثير منها قديم جدًا، ولكن بعضها تم إنشاؤه تلقائيًا وحديثًا. أحب المساعدة في فك تشابك المستندات!
لا تتردد في فتح المشكلات لجميع الأخطاء (أو الأخطاء المشتبه فيها) في pywin32. نرحب أيضًا بطلبات السحب لجميع الأخطاء أو الميزات.
ومع ذلك، يرجى عدم فتح مشكلات github لطلبات الدعم العامة ، أو للمشاكل أو الأسئلة باستخدام الوحدات الموجودة في هذه الحزمة - سيتم إغلاقها. لمثل هذه المشكلات، يرجى إرسال القائمة البريدية python-win32 بالبريد الإلكتروني - لاحظ أنه يجب عليك الاشتراك في القائمة قبل النشر.
لم تعد الإصدارات الثنائية مدعومة.
كان الإصدار 306 هو الأخير مع مثبتات .exe. لا ينبغي عليك استخدامها حقًا، ولكن إذا كنت في حاجة إليها حقًا، فابحث عنها هنا
يجب عليك تثبيت pywin32 عبر النقطة - على سبيل المثال،
python -m pip install --upgrade pywin32
يوجد برنامج نصي لمرحلة ما بعد التثبيت (انظر أدناه) والذي لا ينبغي تشغيله داخل البيئات الافتراضية؛ يجب أن يتم تشغيله فقط في عمليات التثبيت "العالمية".
بالنسبة للتغييرات التي لم يتم إصدارها، يمكنك تنزيل الإصدارات التي تم إجراؤها بواسطة إجراءات github - اختر أي "سير عمل" من الفرع main
وقم بتنزيل "عناصره")
خارج البيئة الافتراضية، قد ترغب في تثبيت كائنات وخدمات COM وما إلى ذلك. ويمكنك القيام بذلك عن طريق تنفيذ ما يلي:
python Scripts/pywin32_postinstall.py -install
من جذر تثبيت بايثون الخاص بك.
إذا قمت بذلك باستخدام الأذونات العادية، فسيكون الأمر عالميًا بالنسبة للمستخدم الخاص بك (سيتم نسخ بعض الملفات إلى جذر تثبيت Python الخاص بك وسيتم إجراء بعض التغييرات على HKCU). إذا قمت بتنفيذ هذا من عملية مرتفعة، فسيكون عالميًا للجهاز (سيتم نسخ الملفات إلى System32، وسيتم تغيير HKLM، وما إلى ذلك)
للتشغيل كخدمة، ربما تريد تثبيت pywin32 عالميًا من موجه أوامر مرتفع - انظر أعلاه.
تحتاج أيضًا إلى التأكد من تثبيت Python في موقع حيث يمكن للمستخدم الذي يقوم بتشغيل الخدمة الوصول إلى التثبيت ويكون قادرًا على تحميل pywintypesXX.dll
و pythonXX.dll
. على وجه الخصوص، لن يتمكن حساب LocalSystem
عادةً من الوصول إلى بنية الدليل %USER%
المحلي الخاص بك.
إذا واجهت أي مشاكل عند الترقية مثل ما يلي:
The specified procedure could not be found
Entry-point not found
وعادة ما يعني أحد أمرين:
لقد قمت بترقية التثبيت حيث تم تشغيل البرنامج النصي لما بعد التثبيت مسبقًا. لذلك يجب عليك تشغيله مرة أخرى:
python Scripts/pywin32_postinstall.py -install
سيؤدي هذا إلى إجراء بعض المحاولات الصغيرة لتنظيف عمليات التثبيت القديمة المتعارضة.
توجد ملفات pywin32 DLL أخرى مثبتة في نظامك، ولكن في موقع مختلف عن المواقع الجديدة. يحدث هذا أحيانًا في البيئات التي تأتي مع pywin32 المشحون مسبقًا (على سبيل المثال، اناكوندا؟).
الحلول الممكنة هنا هي:
pywintypesXX.dll
و pythoncomXX.dll
وقم بإزالتها (حيث XX
هو إصدار Python - على سبيل المثال، "39") قم بتثبيت Visual Studio 2019 (من المحتمل أن يعمل لاحقًا، ولكن قد تكون الخيارات مختلفة)، اتبع الإرشادات الموجودة في بيئة الإنشاء الخاصة بالإصدار الذي قمت بتثبيته.
(من المحتمل أن تعمل المترجمات المجانية أيضًا، ولكن لم يتم اختبارها - أخبرني بتجاربك!)
setup.py
هو برنامج نصي قياسي لبناء distutils، لذا ربما تريد:
python setup.py install
أو
python setup.py --help
تحتاج بعض الوحدات إلى أدوات تطوير برامج (SDK) غامضة لإنشاءها - يجب أن ينجح setup.py
، ويخبرك بلطف بسبب فشل إنشائها - إذا فشل البناء بالفعل في التكوين الخاص بك، فيرجى فتح مشكلة.
يتم تنفيذ الخطوات التالية عند إنشاء إصدار جديد - وذلك بشكل أساسي لتشكيل قائمة مرجعية حتى لا ينسى @mhammond ما يجب فعله :)
منذ الإصدار 307، اعتمدت عملية الإصدار على القطع الأثرية التي تم إنشاؤها بواسطة إجراءات Github.
تأكد من أن ملف CHANGES.txt يحتوي على كل ما يستحق الذكر. قم بتحديث الرأس ليعكس الإصدار والتاريخ اللذين سيصدران على وشك الإصدار، وقم بتنفيذه.
قم بتحديث setup.py برقم الإصدار الجديد. قم بتحديث CHANGES.txt للحصول على قسم عنوان جديد للإصدار التالي الذي لم يتم طرحه. (على سبيل المثال، قسم جديد وفارغ "قادم في الإصدار XXX، لم يتم طرحه بعد")
ادفع هذه التغييرات إلى github، وانتظر حتى تكتمل الإجراءات، ثم قم بتنزيل العناصر من هذا التشغيل.
قم بتحميل عناصر .whl إلى pypi - نقوم بذلك قبل دفع العلامة لأنه قد يتم رفضها بسبب ملف README.md
غير صالح. تم ذلك عبر py -3.? -m twine upload dist/*XXX*.whl
.
أنشئ علامة git جديدة للإصدار.
قم بتحديث setup.py باستخدام رقم الإصدار الجديد + ".1" (على سبيل المثال، 123.1)، لضمان عدم الخلط بين الإصدارات التجريبية المستقبلية وبين الإصدار الحقيقي.
تأكد من دفع كل شيء إلى github، بما في ذلك العلامة (على سبيل المثال، git push --tags
)
أرسل بريدًا إلى python-win32
هذه هي العملية القديمة المستخدمة عند استخدام بيئة تطوير محلية لإنشاء الإصدارات. كان Build 306 هو آخر إصدار تم إصداره بهذه العملية.
تأكد من أن ملف CHANGES.txt يحتوي على كل ما يستحق الذكر. قم بتحديث الرأس ليعكس الإصدار والتاريخ اللذين سيصدران على وشك الإصدار، وقم بتنفيذه.
قم بتحديث setup.py برقم الإصدار الجديد.
قم بتنفيذ make_all.bat
، وانتظر للأبد، واختبر القطع الأثرية.
قم بتحميل عناصر .whl إلى pypi - نقوم بذلك قبل دفع العلامة لأنه قد يتم رفضها بسبب ملف README.md
غير صالح. تم ذلك عبر py -3.? -m twine upload dist/*XXX*.whl
.
قم بتنفيذ setup.py (بحيث يكون رقم الإصدار الجديد موجودًا في الريبو)، وقم بإنشاء علامة git جديدة
قم بتحميل مثبتات .exe إلى جيثب.
قم بتحديث setup.py باستخدام رقم الإصدار الجديد + ".1" (على سبيل المثال، 123.1)، لضمان عدم الخلط بين الإصدارات التجريبية المستقبلية وبين الإصدار الحقيقي.
تأكد من دفع كل شيء إلى github، بما في ذلك العلامة (على سبيل المثال، git push --tags
)
أرسل بريدًا إلى python-win32