كيف يمكنني استخدام Pywin32 مع Virtualenv دون الحاجة إلى تضمين مجلد حزم موقع البيئة المضيف؟

StackOverflow https://stackoverflow.com/questions/1830304

سؤال

أنا أعمل مع pyinstaller. ضمن Python 2.6، التي يتم دعمها جزئيا فقط بسبب الفوضى التي تم إنشاؤها على فوضى MS التي تم إنشاؤها بأشكالها البيان التي تؤثر الآن على Python لأنها الآن MSVC8 التي تم تجميعها.

المشكلة هي أن دعم تضمين البيان يعتمد على pywin32. امتدادات من أجل بناء أي ألم لأنه بدون إدراج مجلد حزم موقع المضيف عند إنشاء virtualenv. (يهزم كيندا النقطة في بيئة البناء) لا يمكنني العثور على طريقة لتثبيت الملحقات المطلوبة حتى يتمكنها من الوصول إلى Pyinstaller.

هل وجد أي شخص حلا لهذه المشكلة؟

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

المحلول 3

حسنا، حسنا منذ اضطررت إلى إيجاد طريقة إلى الأمام قمت بتحسينها. لقد أنشأت داخليا مستودع GIT مع إصدار معا من PYWIN32 الذي سيتم تثبيته داخل Virtualenv باستخدام المعيار setup.py النصي. استغرق الأمر الكثير من الاصطاد لجعله يعمل بشكل صحيح لكني تمكنت من الحصول عليه لتحميله ويعمل التعليمات البرمجية التابعة الآن لأنني أحتاج إليها. إذا شعر الناس أن هذا سيكون من الفائدة للمجتمع يرجى نشر تعليق: إذا احصل على ما يكفي، سأحاول وضع شيء ما على حساب Github الخاص بي.

نصائح أخرى

وجدت http://old.nabble.com/windows:virtualenv-and-phenwin32--td27658201.html (الآن رابط ميت) الذي عرض الحل التالي:

  1. تصفح http://sourceforge.net/projects/pywin32/files/ لعنوان URL من exe تريد
  2. تنشيط virtualenv الخاص بك
  3. يركض easy_install http://PATH.TO/EXE/DOWNLOAD

يعمل هذا مع الإصدارات الحديثة من Setuptools (Circa February 2014، الذي أبلغ عنه TovMeod في التعليقات).


إذا كنت تستخدم نسخة قديمة من Setupuptools (أو توزيعها، فقد تم دمجها مرة أخرى في Setuptools)، فقد تحصل على رسالة الخطأ هذه:

خطأ: C: المستخدمين blah appdata local temp easy_install-ibkzv7 pywin32-214.win32-py2.6.exe ليس destutils صالح ويندوز .exe

في أي حالة:

  1. قم بتنزيل EXE بنفسك
  2. تنشيط virtualenv الخاص بك
  3. يركض easy_install DOWNLOADED_FILE.exe

آمل أن أحاول "تثبيت PIP" بدلا من "Easy_Install"، لكن هذا لم ينجح، وعلى الأرجح أبدا (مطلوب الاقتباس).


أخيرا، وجدت ولكن لم يختبر حلا في http://www.mail-archive.com/python-list@python.org/msg272040.html. الذي:

حل هذا عن طريق نسخ ملف Pywin32.pth في حزم موقع Virtualenv الخاص بي وتحرير الملف للإشارة إلى المسار.

إذا كانت الخيارات الأخرى لا تعمل من أجلك، فربما سوف هذا؟

ل python 2.7 أو 3.x استخدام pypiwin32..

pip install pypiwin32

ربما تم تحسين ذلك منذ الإجابة السابقة، حيث أنني قمت بتثبيت PYWIN32 بنجاح على Sandbox على عدة آلات دون أي "اختراق" محددة:

$ virtualenv sandbox
$ sandbox\scripts\activate
(sandbox) $ git clone https://github.com/Travis-Sun/pywin32.git
(sandbox) $ cd pywin32
(sandbox) $ python setup.py install

اختبارها بالبيئة التالية:

تحرير: خدش هذا الآن، يبدو أن بعض المشاكل مع التثبيت لا يزال ...

لقد سئمت إلى حد ما من الوضع بأكمله، ولقد إنشاء مجموعة من العجلات المحولة ("تحويل العجلات <.exe>"). سأحاول الاحتفاظ بها بالحفاظ على أحدث بناء، لكن هل تصرخ إذا كانت هناك أي مشاكل.

https://tr00st.co.uk/python/wheel/pywin32/

يمكن إجراء التثبيت بسهولة باستخدام PIP والإشارة إلى الحزمة مطابقة الإصدار والهندسة المعمارية الخاصة بك. على سبيل المثال، بالنسبة لبيتثون 3.5 / AMD64:

بيب تثبيت https://tr00st.co.uk/python/wheen32/pywin32-219-cp35-none-win_amd64.whl.

تحذير: فشلت عملية - التشغيل حاليا، لأن إجراء إزالة التثبيت غير قادر على التنظيف بعد نفسها (تم رفض الوصول عند تنظيف Win32api.pyd) - هذا فقط عند إزالة الدليل المؤقت، والذي يمكن حذفه يدويا. أسهل طريقة حول هذا إلغاء التثبيت وإعادة التثبيت بدلا من الترقية، ثم حذف المجلد المؤقت يدويا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top