Pip: نوافذ ترقيات النقطة في المكان

تم إنشاؤها على ٥ نوفمبر ٢٠١٣  ·  89تعليقات  ·  مصدر: pypa/pip

لست متأكدا من حالة pip install --ugrade pip على النوافذ.

أحتاج هذا لـ PEP453

pfmoore ؟

انظر رقم 188 لمناقشة قديمة حول هذا.

windows auto-locked bug

التعليق الأكثر فائدة

في نظام Windows ، استخدم نوافذ موجه الأوامر في وضع المسؤول. ثم اكتب الأمر
تثبيت python -m pip - ترقية pip

آمل أن تعمل من أجلك. هذه هي الطريقة التي حصلت عليها للعمل في Window 10

حظا طيبا وفقك الله.

ال 89 كومينتر

استخدم python -m pip install --upgrade pip . أعتقد أن vsajip كان يفكر في بعض أشكال السحر في أغلفة exe ليعني أن الاستبدال الذاتي لـ exe يمكن أن يعمل. لكنني لا أعرف ما إذا كان قد فعل أي شيء في إصدار distlib الذي نستخدمه. لست متأكدًا في الواقع من أنه شيء _يمكن_ القيام به دون مساعدة من التطبيق (نقطة). وأنا متأكد تمامًا من عدم إضافة رمز إلى النقطة لهذا الغرض.

أنا شخصياً أعتبر أن هذه مشكلة ثانوية - يبدو لي أن إخبار الأشخاص باستخدام `` python -m pip '' هو إجابة مقبولة تمامًا ، نظرًا لأن المشكلة أساسية في كيفية معالجة Windows لحذف الملفات المفتوحة.

في النهاية ، سيكون السؤال عن مقدار التعقيد (مع تكلفة الصيانة اللاحقة) والمخاطر التي نرغب في تحملها لحل هذا الأمر.

أنا شخصياً موافق على طباعة رسالة pip install --upgrade pip لاستخدام python -m pip install --upgrade pip . أنا لا أعتقد أننا يجب أن نخطئ حول مقابض الملفات المفتوحة أو أيًا كان الاستثناء.

كنت على وشك أن أقول نفس الشيء.

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

أيضًا ، يجب علينا حجز أي أمر يحاول (إعادة) تثبيت النقطة - pip install -I pip هو أمر آخر ، على سبيل المثال.

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

كنت أعرف كنت أريد أن أقول ذلك :-(

بصراحة ، لا أعتقد أننا سنحصل على "شيء أفضل" ، وذلك أساسًا لأننا لا نملك خبرة كافية في Windows لتطويره وصيانته. أعرف _ no_ برنامج Windows مع استبدال ذاتي مُرضٍ لحل الملفات التنفيذية. بالتأكيد ليس لدي إجابة ، ولا أتوقع أن يتمكن أي من المطورين العاملين في يونكس من تقديم المساعدة. حتى لو حصلنا على شيء ما ، فمن المحتمل أن يكون معقدًا ومصدرًا محتملاً لتعفن البتات والأخطاء الغامضة.

يبدو لي أن إجراء حل يعمل على جميع الأنظمة الأساسية "الإجابة الرسمية" هو تجنب إرسال رسائل مربكة للمستخدم. قم بنسخه احتياطيًا مع تحذير كما هو موضح ولدينا حل قوي ، حتى لو لم يكن مثالياً تمامًا مثل الحصول على pip install -U pip للعمل.

يرجى إعفاء مستوى معين من الغضب الخفيف في هذا الرد ، بسبب الشعور بأن نظام Windows الأساسي هو الذي يجب أن يكون دائمًا هو النظام الأساسي الذي يجب تقديمه للتسوية - لا أقصد إثارة مشكلة من هذا القبيل. من الناحية العملية ، سأذهب مع أي توافق في الآراء. لا أعتقد أنها مشكلة كبيرة.

FWIW هدفي بعد الانتهاء من PEP453 هو الحصول على البنية الأساسية للاختبار الخاصة بنا والتي تتضمن Windows ، لذلك آمل أن يحل ذلك بعض مشكلات Windows bitrot.

أستطيع أن أفهم الغضب على الرغم من :) إذا كنا نصمم هذا النظام بشكل جديد ، فسأكون أكثر قابلية للتعديل على ذلك ، لكنني لا أعتقد أنه من السهل على المستخدم كسر pip install -U pip لكل شيء بخلاف Windows من أجل الحفاظ على الاتساق. إذا كان هذا شيئًا جديدًا ، فلا يوجد (أو أقل من ذلك على الأقل) استخدام المستخدم:]

حسنًا ، هذا يبدو عادلاً. أنت محق في أن الاستخدام التاريخي أكثر أهمية هنا.

في الواقع لا أشعر أبدًا بما هي تجربة المستخدم على Unix ، لذلك من المحتمل أن أكون مذنبًا في التفكير من جانب واحد مثل أي شخص آخر. يجب أن أحاول معرفة كيف يبدو استخدام Python على Linux - هل هناك مورد جيد "Python على Linux للمبتدئين" يوضح كيفية إعداد بيئة Python (3) ، وإعداد الأدوات المختلفة ، وما إلى ذلك؟ [شيء واحد أجده دائمًا لا يتم تغطيته ، وهو كيفية جعل "python" يشغل Python 3 افتراضيًا ، وكيفية إنشاء "virtualenv" لـ Python 3 افتراضيًا ، كل هذا النوع من الأشياء - يبدو لي أن Python 3 من الدرجة الثانية على نظام التشغيل Unix أكثر من نظام التشغيل Windows ، وهذا أمر غريب بما فيه الكفاية.]

عادةً لا ترغب في جعل python يشير إلى python3 على * nix لأن النظام يستخدم Python ولن يتم نقل جميع مكتباتهم إلى Python3. ومع ذلك ، هناك بعض توزيعات Linux التي تحتوي على Python3 كإعداد افتراضي الآن ... أعتقد أن Arch؟ وربما فيدورا القادمة؟

حسنًا ، أنا لا أتحدث على مستوى النظام ، لكن حقًا لا يمكنك اختيار ما تستخدمه لبايثون في حسابك الشخصي؟ هذا بالتأكيد يجعل Python 3 من الدرجة الثانية ، بالنسبة لطريقة تفكيري ... لكنه يفسر لماذا لا يبدو أن مستخدمي Unix يجدون استخدام أشياء مثل "pip3" أو "pip3.3" قبيحًا مثل الخطيئة :-)

(على أي حال ، نحن بعيدون عن الموضوع هنا ، لذا لا تهتم).

يمكنك إعداد غلافك بحيث يحتوي على ~ / bin / قبل حاوية النظام وإضافة رابط رمزي هناك من python إلى python3 ، ولكن نعم خارج الموضوع. يسعدني تقديم المساعدة إذا كنت مهتمًا بالفعل بإعداد الأشياء:] IRC أو Email.

عملي الذي أعتقد أن بول كان يشير إليه كان فقط تنفيذ رقصة "deleteme" لاستبدال الملفات قيد الاستخدام (أي أغلفة exe) - هذا في distlib كود Python ، وليس في أغلفة exe. هذا موجود في الوحدة النمطية distlib.scripts ويجب ممارسته كلما تم استخدام هذه الوحدة لإنشاء نص برمجي.

إذن ربما تم حل هذا بالفعل بالنسبة لـ Wheels؟ وهل هي أيضا مشكلة setuptools؟

يبدو ممكنا. سأقوم ببعض الاختبارات اليوم ، إذا استطعت.

للأسف لا ، على الأقل مع "pip install -I pip". (من الصعب اختبار ترقية فعلية ، حيث أن الإصدار الأخير المطلق من pip فقط يدعم برنامج تضمين البرنامج النصي):

>pip install -f $x -I pip --use-wheel --no-index --pre
Ignoring indexes: https://pypi.python.org/simple/
Downloading/unpacking pip
Installing collected packages: pip
  Found existing installation: pip 1.5.dev1
    Uninstalling pip:
      Successfully uninstalled pip
Cleaning up...
Exception:
Traceback (most recent call last):
  File "C:\Work\Scratch\xxyy\lib\shutil.py", line 365, in _rmtree_unsafe
    os.unlink(fullname)
PermissionError: [WinError 5] Access is denied: 'c:\\users\\uk03306\\appdata\\local\\temp\\pip-zhbsiy-uninstall\\work\\scratch\\xxyy\\scripts\\pip.exe'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Work\Scratch\xxyy\lib\site-packages\pip\basecommand.py", line 121, in main
    status = self.run(options, args)
  File "C:\Work\Scratch\xxyy\lib\site-packages\pip\commands\install.py", line 258, in run
    requirement_set.install(install_options, global_options, root=options.root_path)
  File "C:\Work\Scratch\xxyy\lib\site-packages\pip\req.py", line 1330, in install
    requirement.commit_uninstall()
  File "C:\Work\Scratch\xxyy\lib\site-packages\pip\req.py", line 557, in commit_uninstall
    self.uninstalled.commit()
  File "C:\Work\Scratch\xxyy\lib\site-packages\pip\req.py", line 1743, in commit
    rmtree(self.save_dir)
  File "C:\Work\Scratch\xxyy\lib\site-packages\pip\util.py", line 42, in rmtree
    onerror=rmtree_errorhandler)
  File "C:\Work\Scratch\xxyy\lib\shutil.py", line 460, in rmtree
    return _rmtree_unsafe(path, onerror)
  File "C:\Work\Scratch\xxyy\lib\shutil.py", line 362, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "C:\Work\Scratch\xxyy\lib\shutil.py", line 362, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "C:\Work\Scratch\xxyy\lib\shutil.py", line 362, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "C:\Work\Scratch\xxyy\lib\shutil.py", line 362, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "C:\Work\Scratch\xxyy\lib\shutil.py", line 367, in _rmtree_unsafe
    onerror(os.unlink, fullname, sys.exc_info())
  File "C:\Work\Scratch\xxyy\lib\site-packages\pip\util.py", line 61, in rmtree_errorhandler
    func(path)
PermissionError: [WinError 5] Access is denied: 'c:\\users\\uk03306\\appdata\\local\\temp\\pip-zhbsiy-uninstall\\work\\scratch\\xxyy\\scripts\\pip.exe'

Storing complete log in C:\Users\uk03306\pip\pip.log

لذلك لا يستخدم pip distlib.scripts لتثبيت البرامج النصية ... أعتقد أنه لا يتناسب مع سير العمل pip .

أظن أن السبب في ذلك هو أننا نقوم بإزالة التثبيت ثم التثبيت ، بدلاً من التثبيت الذي يحل محل ما هو موجود (لأسباب واضحة).

لا يسمح Windows بالكتابة فوق ملفات exe المفتوحة أو حذفها ، ولكنه يسمح بإعادة تسميتها / نقلها.

حسنًا ، مع بعض أدوات tomfoolery باستخدام Win32 API ، يمكنك إغلاق المقبض إلى pip.exe مثلما يمكنك عند استخدام مستكشف العمليات Sysinternal.

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

واجهت نفس المشكلة.

كإختراق سريع ، هل يمكن لـ pip.exe اكتشاف أنه يتم ترقيته قبل التنفيذ وإعادة تشغيل نفسه python -m pip {{ sys.argv }} ؟

لا أعتقد أن هذا يعمل بالفعل.

ولكن ربما فكرة غبية ، لا يحتاج afaik. exe إلى التحديث ، هل يمكننا فقط حالة خاصة pip.exe وتركها بمفردها؟ من المحتمل أن يترك ملف pip.exe موجودًا بعد التثبيت.

dstufft صحيح ، "إعادة تشغيل نفسك" ليس بهذه البساطة مثل techtonik تجعله يبدو على Windows ، حيث لا يوجد ما يعادل مكالمة Unix exec .

من الناحية الفنية ، قد يحتاج pip.exe إلى التحديث إذا تغيرت نقطة الإدخال أو إذا تم تغيير كود غلاف distlib. هذا ليس شائعًا ، لكن يمكن أن يحدث (في وقت مبكر ، تغير كود distlib قليلاً حتى تستقر الأمور). ما قد يكون من الممكن القيام به هو كتابة pip.exe في موقع مؤقت ، ثم إذا كان مطابقًا للموقع الحالي ، فتخطه. لن تتجنب الأخطاء عندما تكون بحاجة إلى التحديث ، ولكن في 99٪ من الحالات عندما لا تكون كذلك ، ستكون بخير.

راجع للشغل ، نحن نسير في دوائر هنا. وفقًا لتعليقات Vinay السابقة ، تم حل هذا في distlib (وهو المكان الذي أعتقد أنه يجب حله فيه) ولكن النقطة لا تستخدم API بطريقة تسمح لها بالعمل. إذا تمكنا من استخدام حل distlib ، فهذا رائع. بخلاف ذلك ، نحتاج إلى شخص ما لكتابة حل خاص بالنقطة (وما زلت متشككًا في إمكانية القيام بذلك بطريقة قوية وقابلة للصيانة ليست أكثر تعقيدًا بكثير مما تتطلبه المشكلة).

اقتراح:

  1. أضاف شخص ما قسمًا إلى مستندات pip على http://www.pip-installer.org/en/latest/installing.html#install-or-upgrade-pip مشيرًا إلى أن الحل البديل python -m pip مطلوب على Windows عند ترقية النقطة بنفسها. قد تسنح لي الفرصة للقيام بذلك في مرحلة ما ، ولكن سيتم قبول العلاقات العامة من الأشخاص الذين ساهموا في هذه المشكلة بامتنان :-).
  2. إذا كان لدى أي شخص حل قابل للتطبيق ، وكان مستعدًا لتنفيذه ، فيجب عليه رفع مستوى العلاقات العامة ويمكننا مراجعة الكود الفعلي بدلاً من الأساليب المقترحة.

أعتقد أننا في مرحلة يكون فيها كود العمل الفعلي هو الشيء الوحيد الذي سيدفع هذه المشكلة إلى الأمام.

أنا -1 على نفخة المستندات دون تجربة حلول أخرى.

أنا أقوم بإجراء +1 لتوثيق ما يعمل الآن.

حتى مع وجود تعليق مستند ، فإنه لا يزال حلاً - ليس حلاً ، ولديك موجه أوامر لنظام Windows خاطئ.

ربما يكون هذا جنونًا لكنني دائمًا أفعل هذا:

$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python

بالطبع هذا يتطلب أن يكون لديك libcurl ، ولكن هناك ثنائيات نوافذ متاحة هنا .

لقد حاولت تثبيته على جهاز Mac لكنني تلقيت هذا

Alexs-MacBook- Air: Pipmodules aleand $ pip install -U pip
-باش: النقطة: الأمر غير موجود
Alexs-MacBook- Air: Pipmodules aleand $ python get-pip.py
تنزيل / تفريغ Pip
تنزيل pip-1.5.5-py2.py3-none-any.whl (1.2 ميغابايت): تم تنزيل 1.2 ميغابايت
تركيب الحزم المجمعة: نقطة
تنظيف...
استثناء:
Traceback (أحدث مكالمة أخيرة):
ملف "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/basecommand.py" ، السطر 122 ، بشكل رئيسي
الحالة = self.run (خيارات ، أرغس)
ملف "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/commands/install.py" ، السطر 283 ، قيد التشغيل
Required_set.install (install_options، global_options، root = options.root_path)
ملف "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/req.py" ، سطر 1435 ، قيد التثبيت
Required.install (install_options، global_options، _args، * _kwargs)
ملف "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/req.py" ، السطر 671 ، قيد التثبيت
self.move_wheel_files (self.source_dir، root = root)
ملف "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/req.py" ، السطر 901 ، في move_wheel_files
pycompile = self.pycompile ،
ملف "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/wheel.py" ، السطر 215 ، في move_wheel_files
clobber (مصدر ، lib_dir ، صحيح)
ملف "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/wheel.py" ، السطر 205 ، في clobber
os.makedirs (destdir)
ملف "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py" ، السطر 157 ، في makedirs
مكدير (الاسم والوضع)
خطأ في نظام التشغيل: [Errno 13] تم رفض الإذن: "/Library/Python/2.7/site-packages/pip"

تخزين سجل تصحيح الأخطاء في /Users/aleand/Library/Logs/pip.log

zaducu ، يمكنني القول من التتبع الخاص بك أنك تحاول تحديث إصدار النقطة الموجود في إصدار Python الذي تم تثبيته مسبقًا مع جهاز Mac الخاص بك. نظرًا لأنك تقوم بتحديث الإصدار المثبت مسبقًا ، فستحتاج إلى رفع بيانات الاعتماد الخاصة بك باستخدام sudo :

$ sudo curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python

لاستخدام sudo قد تضطر إلى إضافة نفسك إلى /etc/sudousers . ابحث في جوجل وستجد العديد من الروابط التي توضح كيفية القيام بذلك.

نظام Mac ذكي ، فهو يحتفظ بحزمك في /Library/Python بدلاً من إتلاف مجلد /System/Frameworks/Python.framework site-pacakges . ياي! ولكن للوصول إلى هذا المجلد ، يجب أن تكون مسؤولاً بامتيازات الجذر ، وبالتالي sudo .

أحد البدائل التي يجب مراعاتها هو الاحتفاظ بحزمك ووحداتك الشخصية منفصلة باستخدام virtualenv و / أو مجلد .local . لتثبيت الحزم في مجلد محلي ، استخدم distutils بدلاً من pip واتبع الإرشادات الخاصة بتثبيت وحدات python .

البدائل الأخرى لاستخدام Python المثبتة مسبقًا هي استخدام Python أو homebrew أو MacPorts أو Fink أو بنائه بنفسك.

بالنسبة إلى Python الرسمية ، ستظل بحاجة إلى sudo ولكن سيتم تثبيت معظم العناصر في /System/Frameworks وليس /System/Library/Frameworks بالنسبة إلى البيرة المنزلية ، لن تحتاج إلى sudo . لا أستطيع التحدث عن MacPorts أو Fink.

لا تزال تواجه نفس المشكلة على Windows ، بالترقية من 1.5.4 إلى 6.0.8:

E: \ Distrib \ Programming> pip install -U pip
تنزيل / تفريغ نقطة من https://pypi.python.org/packages/py2.py3/p/pip/pip-6.0.8-py2.py3-none-any.whl#md5 = 41e73fae2c86ba2270ff51c1d86
f7e09
تركيب الحزم المجمعة: نقطة
تم العثور على التثبيت الحالي: النقطة 1.5.4
إلغاء تثبيت النقطة:
تم إلغاء تثبيت النقطة بنجاح
تنظيف...
استثناء:
Traceback (أحدث مكالمة أخيرة):
ملف "C: \ Python \ 3.3-32 \ lib \ shutil.py" ، السطر 371 ، في _rmtree_unsafe
os.unlink (الاسم الكامل)
خطأ إذن: [WinError 5] тказано в доступе: 'c: \ users \ bialix \ appdata \ local \ temppip-6i_i7a-uninstallpython \ 3.3-32 \ scripts \ p
ip.exe "

أثناء معالجة الاستثناء أعلاه ، حدث استثناء آخر:

Traceback (أحدث مكالمة أخيرة):
الملف "C: \ Python \ 3.3-32 \ lib \ site -packpip \ basecommand.py" ، السطر 122 ، بشكل رئيسي
write_debug_log = check_path_owner (debug_log_path)
ملف "C: \ Python \ 3.3-32 \ lib \ site -packpip \ commands \ install.py" ، السطر 283 ، قيد التشغيل
build_delete = (ليس (options.no_clean أو options.build_dir))
ملف "C: \ Python \ 3.3-32 \ lib \ site-packagespipreq.py" ، سطر 1443 ، قيد التثبيت
ملف "C: \ Python \ 3.3-32 \ lib \ site-packagespipreq.py" ، السطر 610 ، في الالتزام
ملف "C: \ Python \ 3.3-32 \ lib \ site-packagespipreq.py" ، السطر 1860 ، قيد التنفيذ
ملف "C: \ Python \ 3.3-32 \ lib \ site -packpip \ util.py" ، السطر 43 ، في rmtree
ملف "C: \ Python \ 3.3-32 \ lib \ shutil.py" ، السطر 478 ، في rmtree
إرجاع _rmtree_unsafe (مسار ، خطأ)
ملف "C: \ Python \ 3.3-32 \ lib \ shutil.py" ، السطر 368 ، في _rmtree_unsafe
_rmtree_unsafe (الاسم الكامل ، خطأ)
ملف "C: \ Python \ 3.3-32 \ lib \ shutil.py" ، السطر 368 ، في _rmtree_unsafe
_rmtree_unsafe (الاسم الكامل ، خطأ)
ملف "C: \ Python \ 3.3-32 \ lib \ shutil.py" ، السطر 368 ، في _rmtree_unsafe
_rmtree_unsafe (الاسم الكامل ، خطأ)
ملف "C: \ Python \ 3.3-32 \ lib \ shutil.py" ، السطر 373 ، في _rmtree_unsafe
عند الخطأ (os.unlink ، fullname ، sys.exc_info ())
ملف "C: \ Python \ 3.3-32 \ lib \ site -packpip \ util.py" ، السطر 62 ، في rmtree_errorhandler
خطأ إذن: [WinError 5] тказано в доступе: 'c: \ users \ bialix \ appdata \ local \ temppip-6i_i7a-uninstallpython \ 3.3-32 \ scripts \ p
ip.exe "

أي تغييرات في هذه المسألة؟

إنه غير قابل للإصلاح بأي معنى عملي (على الأقل ، سيحتاج شخص ما إلى توفير تصحيح كامل للعمل للتقييم إذا اعتقد أنه كان كذلك ، حيث لم يكتشف أحد بعد طريقة لإصلاحه - إنه في الأساس أحد قيود Windows).

الطريقة الصحيحة لترقية النقطة على Windows هي python -m pip install -U pip .

pfmoore ماذا عن Python 2.6؟

[py26] C:\Users\IEUser>python -m pip --version
C:\Users\IEUser\Anaconda\envs\py26\python.exe: pip is a package and cannot be directly executed

تضمين التغريدة أكره التفكير في Python 2.6 :-)

إذا كنت أتذكر ، فإن python -m pip.__main__ يعمل هناك. ليس لدي نسخة من Python 2.6 لتسليمها لاختبارها في الوقت الحالي ، آسف ...

لقد اختبرت للتو Python 2.6 ، و python -m pip.__main__ يعمل بالفعل هناك.

مرحبا!

python -m pip install -U pip لا يعمل معي (w7 ، بوويرشيل ، ثعبان مثبت عبر شوكوليتي) ؛ فشل التثبيت بسبب مشكلات الأذونات:

PS C:\tools> python --version
Python 3.4.3
PS C:\tools> pip --version
pip 6.0.8 from C:\tools\python\lib\site-packages (python 3.4)
PS C:\tools> python -m pip install -U pip
You are using pip version 6.0.8, however version 7.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.0.1-py2.py3-none-any.whl#md5=9b403ba9b82d4a1e5fda5b6cc8952b57
  Using cached pip-7.0.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 6.0.8
    Uninstalling pip-6.0.8:
      Exception:
      Traceback (most recent call last):
        File "C:\tools\python\lib\shutil.py", line 523, in move
          os.rename(src, real_dst)
      PermissionError: [WinError 5] Access is denied: 'c:\\tools\\python\\lib\\site-packages\\pip-6.0.8.dist-info\\description.rst' -> 'C:\\Users\\Administrator\\AppData\\Local\\Temp\\pip-4ghq1oa9-uninstall\\tools\\python\\lib\\site-packages\\pip-6.0.8.dist-info\\description.rst'

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
        File "C:\tools\python\lib\site-packages\pip\basecommand.py", line 232, in main
          status = self.run(options, args)
        File "C:\tools\python\lib\site-packages\pip\commands\install.py", line 347, in run
          root=options.root_path,
        File "C:\tools\python\lib\site-packages\pip\req\req_set.py", line 543, in install
          requirement.uninstall(auto_confirm=True)
        File "C:\tools\python\lib\site-packages\pip\req\req_install.py", line 667, in uninstall
          paths_to_remove.remove(auto_confirm)
        File "C:\tools\python\lib\site-packages\pip\req\req_uninstall.py", line 126, in remove
          renames(path, new_path)
        File "C:\tools\python\lib\site-packages\pip\utils\__init__.py", line 316, in renames
          shutil.move(old, new)
        File "C:\tools\python\lib\shutil.py", line 536, in move
          os.unlink(src)
      PermissionError: [WinError 5] Access is denied: 'c:\\tools\\python\\lib\\site-packages\\pip-6.0.8.dist-info\\description.rst'

أفكار؟

لا توجد طريقة يجب أن يتم قفل هذا الملف بها ، أو أنه لا يجب أن يكون لديك إذن بحذفه. هل يمكن أن تكون مشكلة الشوكولاتة؟ هل يمكنك حذف هذا الملف يدويًا من موجه الأوامر؟

AmazingHorse هل حاولت

curl -k https://bootstrap.pypa.io/get-pip.py | python

على افتراض أن لديك عقدة ؟

من المثير للاهتمام ، pfmoore ، أن هذا الملف مؤمن حتى في موجه أوامر المسؤول.

لذلك ، يبدو الأمر وكأنه مشكلة في أذونات Windows بدلاً من شيء ذي نقطة.

هل يتعلق الأمر بحقيقة أنه تم تثبيت python الخاص بي خارج بنية دليل windows في C:؟

سأكون بحثًا عن هذا ولكني أشعر بالفضول إذا كان بإمكان أي شخص نشر ما يعتقد أنه سيكون بسبب ذلك.

هتاف الرفاق

AmazingHorse بصراحة ليس لدي فكرة. الاحتمال الآخر هو أنه قد يكون هناك شيء معين حول كيفية تثبيت Chocolatey لـ Python - ربما الإبلاغ عن المشكلة على جهاز التتبع الخاص بهم (أفترض أن لديهم واحدة؟) وانظر ماذا يقولون.

لكن نعم ، إنها ليست مشكلة نقطة من صوتها.

يسمح Windows بإعادة تسمية / نقل الملفات المعينة للذاكرة (المعينة كصورة أو بيانات) إلى اسم جديد على نفس وحدة التخزين. لذا يمكن لمعالج الخطأ rmtree محاولة إعادة تسمية الملف لنقله إلى الدليل المؤقت الأساسي. على الأقل هناك لن يتدخل في إزالة الدليل. يفشل هذا الحل البديل إذا كان الملف موجودًا على وحدة تخزين مختلفة عن الدليل المؤقت ، أو لانتهاك مشاركة ، أو إذا منع ACL للملف العملية. لكن لا ينبغي أن ينطبق أي من هؤلاء في هذه الحالة.

إذا تم تمكين مجموعة المسؤولين في الرمز المميز للعملية ، فيمكن جدولة الملف الذي تمت إعادة تسميته للحذف عند إعادة تشغيل النظام. ما عليك سوى استخدام ctypes للاتصال بـ MoveFileExW(path, None, MOVEFILE_DELAY_UNTIL_REBOOT) . لكن هذا فشل للمستخدمين العاديين ، لأنه لا يُسمح لهم بتعديل قيمة سجل مدير الجلسة PendingFileRenameOperations .

نقطة على windows 7/10 تعمل بشكل جيد باستثناء التحديث> pip install --upgrade pip
أحاول تحميل أقل ما يمكن إلى C: \ (SSD) وتثبيت البرنامج على الشجرة بدءًا من D: \ NUC \
هذا ما أراه:

D:\NUC\Python34>pip install --upgrade pip
You are using pip version 6.0.8, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.1.2-py2.py3-none-any.whl#md5=5ff9fec0be479e4e36df467556deed4d
  Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB)
    100% |################################| 1.1MB 204kB/s
Installing collected packages: pip
  Found existing installation: pip 6.0.8
    Uninstalling pip-6.0.8:
      Exception:
      Traceback (most recent call last):
        File "D:\NUC\Python34\lib\shutil.py", line 523, in move
          os.rename(src, real_dst)
      OSError: [WinError 17] The system cannot move the file to a different disk drive: 'd:\\nuc\\python34\\scripts\\pip.exe' -> 'C:\\Users\\David\\AppData\\Local\\Temp\\pip-247i52js-uninstall\\nuc\\python34\\scripts\\pip.exe'

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
        File "D:\NUC\Python34\lib\site-packages\pip\basecommand.py", line 232, in main
        File "D:\NUC\Python34\lib\site-packages\pip\commands\install.py", line 347, in run
        File "D:\NUC\Python34\lib\site-packages\pip\req\req_set.py", line 543, in install
        File "D:\NUC\Python34\lib\site-packages\pip\req\req_install.py", line 667, in uninstall
        File "D:\NUC\Python34\lib\site-packages\pip\req\req_uninstall.py", line 126, in remove
        File "D:\NUC\Python34\lib\site-packages\pip\utils\__init__.py", line 316, in renames
        File "D:\NUC\Python34\lib\shutil.py", line 536, in move
          os.unlink(src)
      PermissionError: [WinError 5] Access is denied: 'd:\\nuc\\python34\\scripts\\pip.exe'

يتوفر مسار مجلد AppData على محرك الأقراص D: الخاص بي ، ويتساءل عن أفضل طريقة للتعامل مع هذا الموقف للأدوات والاستخدامات اللاحقة. فكرت في تقاطع طرق ، لكنها ستظل تبدو وكأنها محرك مختلف. ربما كتابة فرق الموقع المتوقع إلى الموقع الفعلي للتحقق من إعطاء المسار الصحيح؟ قبل القيام بذلك ، تم تثبيت النقطة django على ما يرام (ولكن اشتكى من الإصدار الذي أدى إلى هذا الاكتشاف). هممم ... والآن يبدو أن النقطة مكسورة.

D:\NUC\Python34\Scripts>pip -h
Traceback (most recent call last):
  File "D:\NUC\Python34\lib\runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "D:\NUC\Python34\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\NUC\Python34\Scripts\pip.exe\__main__.py", line 5, in <module>
ImportError: No module named 'pip'

D:\NUC\Python34\Scripts>dir
 Volume in drive D is TOSHIBA EXT
 Volume Serial Number is E085-D5D7

 Directory of D:\NUC\Python34\Scripts

08/25/2015  09:08 AM    <DIR>          .
08/25/2015  09:08 AM    <DIR>          ..
08/25/2015  09:08 AM            92,045 django-admin.exe
08/25/2015  09:08 AM               136 django-admin.py
08/25/2015  09:01 AM               346 easy_install-3.4-script.py
08/25/2015  09:01 AM            65,536 easy_install-3.4.exe
08/25/2015  09:01 AM               651 easy_install-3.4.exe.manifest
08/25/2015  09:01 AM               338 easy_install-script.py
08/25/2015  09:01 AM            65,536 easy_install.exe
08/25/2015  09:01 AM               647 easy_install.exe.manifest
08/25/2015  08:19 AM            91,984 pip.exe
08/25/2015  08:19 AM            91,984 pip3.4.exe
08/25/2015  08:19 AM            91,984 pip3.exe
08/25/2015  09:08 AM    <DIR>          __pycache__
              11 File(s)        501,187 bytes
               3 Dir(s)  328,895,152,128 bytes free

D:\NUC\Python34\Scripts>

عليك أن تفعل python.exe -m pip install --upgrade pip

في Python 2.6 ، تحتاج إلى تشغيل python -m pip.__main__ install -U pip

أنا أعتبر الوضع الحالي سيئًا حقًا لمستخدمي Python الجدد وكذلك لمستخدمي Python القدامى مثلي الذين لا يستخدمون Windows عادةً. أنا بخير تمامًا باستخدام python -m pip install --upgrade pip ، لكنني أعتقد حقًا أن pip install --upgrade pip يجب أن أوصي بذلك تلقائيًا على Windows. dstufft اقترح هذا بالفعل في 2013. هل هناك سبب وجيه لعدم القيام بذلك؟

ملاحظة: آسف للإبلاغ عن رقم 3462 كنسخة مكررة من هذه المشكلة. لم أجد هذه المشكلة من خلال البحث في أداة التعقب عن WindowsError . نأمل بعد هذا التعليق أن يفعل الآخرون في المستقبل.

على حد علمي ، إنه بالفعل الأمر الذي يقترحه pip للمستخدم عند اكتشاف إصدار جديد من نفسه. الوضع ليس بهذا السوء.

pekkaklarck السبب الرئيسي لعدم القيام بذلك هو أنه من الصعب حقًا pip.exe بدلاً من python -m pip . وحتى إذا اكتشفت ذلك ، فأنت بحاجة إلى التحقق مما إذا كان pip موجودًا في الأشياء التي يتم تثبيتها (ضع في اعتبارك pip install --upgrade -r http://some.remote/requirements.txt - بحلول الوقت الذي تقرأ فيه ملف المتطلبات ، يمكن القول أنه قد فات الأوان للإصدار الرسالة).

بالطبع ، الشيء الذي ليس مثاليًا بنسبة 100٪ هو أمر منطقي تمامًا لتنفيذه - إنه التأكد من أننا لا نعترض على الاستخدامات الصحيحة تمامًا ، بدلاً من التأكد من أننا نلتقط جميع الحالات الأساسية ، فهذا أمر مهم حقًا.

من المؤكد أننا نفكر في دمج العلاقات العامة لمعالجة هذه المشكلة ، لكنني لا أعتقد أن أيًا من مطوري النقاط الأساسيين يجدون المشكلة إشكالية بدرجة كافية لمحاولة الإصلاح بأنفسهم (ربما أكون أثقل مستخدم Windows في المطورين الأساسيين ، و أجد أن تذكر استخدام python -m pip سهل بشكل معقول).

لأغراض معرفة ما إذا كنا pip[.exe] أم لا ، أتخيل

"pip" in os.path.basename(sys.argv[0])

سيعمل بشكل جيد. أيضًا مجرد التحذير من رؤية [-U|--upgrade] و pip في الاستدعاء قد يكون كافيًا لإصلاح 90٪ من الاستدعاءات.

stonebig : هل يمكنك توضيح متى يوصى بهذا الأمر؟ لقد جربت pip install -U pip بعد تثبيت Python 2.7.11 حديثًا وفشل هذا الخطأ:

خطأ في Windows: [خطأ 5] تم رفض الوصول: 'c: \ users \ koulutus \ appdata \ local \ temppip-65z4kx-uninstallpython27 \ scriptspip.exe'

pfmoore : Ivoz اعتقدت أن pip.exe سيكون في sys.argv . بدلاً من ذلك ، يجب أن يكون من الممكن التقاط WindowsError والرد على ذلك.

Ivoz هل هذا العمل؟ اعتقدت أن غلاف pip.exe قد استدعى python كعملية فرعية ، لذلك لن ينجح. لكن الاختبار السريع (طباعة sys.argv[0] في pip.main() ) يُظهر:

>py -m pip
C:\Users\Gustav\AppData\Local\Programs\Python\Python35\lib\site-packages\pip\__main__.py

Usage:
...

>pip
C:\Users\Gustav\AppData\Local\Programs\Python\Python35\Scripts\pip

Usage:
...

>pip.exe
C:\Users\Gustav\AppData\Local\Programs\Python\Python35\Scripts\pip

Usage:

إنه يعمل ، ولكن عليك أن تكون حريصًا في كيفية اكتشاف pip في sys.argv[0] (لاحظ أن المثال الأول يتضمن الدليل pip في المسار إلى __main__.py )

شكرا لتوضيح هذا. لقد تعلمت شيئًا اليوم :-)

pekkaklarck المشكلة في الحصول على WindowsError (إذا كنت أذكر) هي أنه يحدث متأخرًا جدًا ، والتثبيت مكتمل جزئيًا (وليس من السهل التراجع عنه).

لكنني لا أرغب في ثني أي شخص عن محاولة إصلاح هذه المشكلة ، لذلك سأترك الأمر على هذا النحو :-)

ولكن عليك أن تكون حريصًا في كيفية اكتشاف النقطة في sys.argv [0]

pfmoore ومن هنا جاءت الدعوة إلى os.path.basename .

تضمين التغريدة متأخر جدا في الليل هنا. نعم بوضوح :-)

تضمين التغريدة على سبيل المثال عند القيام بـ pip list (على windows). بقدر ما أتذكر في مناقشات العام الماضي:

  • كان هذا هو الحل الوحيد الذي تصوره فريق Pypa على أنه موثوق ،
  • يظهر فقط على النوافذ.

pip_example

قد يكون هناك حل أفضل ، لكنني أفترض أنه بالفعل 80٪ من إجابة مثالية من الموقف السابق.

ربما يكون الحل الأفضل هو الحصول على "Upgrade_pip.bat" مع تثبيت Python الافتراضي لنظام التشغيل Windows ، وليس مشدودًا إلى "pip" ، وهذا سيفي بهذا الأمر. (أو pip_update.bat لمطابقة conda بشكل أفضل؟)

لقد وصلت إلى هذا اليوم أثناء الغوص في تجربة مستخدم Windows Python الجديدة. كان فظيعا.
هل يمكننا جعل -m تلقائيًا لهذا الأمر؟ (ربما يعطي ترقية النقطة أمرًا خاصًا به؟)

يجب ألا يضطر أي مستخدم إلى رؤية هذا ، خاصة بعد تشغيل الأمر بالضبط _pip الذي أخبرهم بالتشغيل_.

screen shot 2016-02-23 at 9 51 53 pm

أعتقد أن لدينا بالفعل إعداد التسجيل في إصدارات أحدث من النقطة 7.0.1 لإخبار مستخدمي Windows باستخدام python -m pip install --upgrade pip بدلاً من pip install --upgrade pip .

: بريق:: كيك:: بريق:

نعم ، منذ 7.1 cf # 2830

\ س /

لا يمكنني ترقية النقاط الخاصة بي عند الفوز 10 ، فما هو الخطأ؟

default

تضمين التغريدة
إذا كنت تريد حقًا معرفة ما هو الخطأ ، فيرجى قراءة هذا الموضوع. إذا كنت مهتمًا فقط بجعل هذا يعمل ، فيرجى قراءة السطر الأخير من الإخراج الذي حصلت عليه ومقارنته بما قمت بتشغيله.

@ piotr-dobrogost
فعلا؟ يبدو أن الخط الأحمر الأخير يشير إلى مشكلة في فك التشفير ، بدلاً من خطأ رفض الوصول وهو النتيجة المعتادة للتحديث في المكان على Windows. هل يمكن أن تكون مشكلة grasx مرتبطة باستخدام صفحة الشفرة السيريلية؟

أشك في أن المشكلة التي واجهتها grasx مرتبطة بهذه المشكلة. لقد رأيت مشاكل مماثلة على Windows ، رغم ذلك. انظر # 3463.

تضمين التغريدة
أنت محق. خطأي.

@ بيوتر-dobrogostnmusattipekkaklarck ومع ذلك، شكرا لك، لقد غيرت اسم المستخدم، وحتى الآن أنه يحتوي على أحرف ASCII فقط وبنجاح ترقية نقطة إلى 8.1

grasx غيرت اسم المستخدم? أنا

فكرة عشوائية ، فماذا عن عدم استبدال ملف exe إذا لم يكن ضروريًا

بقدر ما فهمت أن ملفات exe عبارة عن ترامبولين صغير جدًا يعمل عادةً

كان المنطق الأكثر أهمية في ملفات البرامج النصية المصاحبة

@ pzz2011 حسنًا ، لقد قمت بالفعل

RonnyPfannschmidt يعتمد على ما يتم استخدامه لكتابة .exe - setuptools المستخدمة لاستخدام foo.exe + foo-script.py (لست متأكدًا مما يفعله الآن) ، في حين أن distlib (إذا تم تكوينه) ينشئ foo.exe واحدًا

grasx hhh ... لقد وجدت طريقة أسهل لحلها. لقد قمت فقط بإعادة تثبيت python من 2.7.x إلى 2.7.10.
ثم ابتسم لي النجاح ~

في نظام Windows ، استخدم نوافذ موجه الأوامر في وضع المسؤول. ثم اكتب الأمر
تثبيت python -m pip - ترقية pip

آمل أن تعمل من أجلك. هذه هي الطريقة التي حصلت عليها للعمل في Window 10

حظا طيبا وفقك الله.

grasx لست متأكدًا تمامًا من السبب ، ولكن هذا الخطأ يظهر عند تحديد "التثبيت لجميع المستخدمين" على مثبت Python على كل من Windows 8.1 و 10. قم بإعادة التثبيت ، وحدد PATH والتثبيت المخصص. تأكد من عدم تحديد المربع العلوي وحدد موقع التثبيت. استخدام "python -m pip install --upgrade pip" في cmd يعمل بشكل جيد بعد ذلك.

مجرد لمعلوماتك ، لمستخدمي Windows. إذا قمت بتثبيت Cygwin ، يتم تثبيت Python2.7 تلقائيًا. كل ما عليك فعله بعد ذلك هو تشغيل:

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

(نعم ، تحتاج إلى تثبيت wget أولاً.)

image
كيفية حل هذه المشكلة؟

ههههههههههه
راجع لنسخ نص من نافذة موجه الأوامر للحصول على شرح حول كيفية نسخ النص هنا. بهذه الطريقة سيكون النص الذي تنشره قابلاً للبحث.

أنت تستخدم إصدار Pip 7.1.0 ، ولكن الإصدار 9.0.1 متاح.
يجب أن تفكر في الترقية عبر اتصال "python -m pip install --upgrade pip" comm
و.
د: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip_vendorrequ
ests \ packs \ urllib3 \ util \ ssl_.py: 90: InsecurePlatformWarning: SSLContex حقيقي
الكائن t غير متوفر. هذا يمنع urllib3 من تكوين مناسب لـ SSL
ely وقد يتسبب في فشل بعض اتصالات SSL. لمزيد من المعلومات ، انظر HTT
ملاحظة: //urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatform تحذير
جمع نقطة
تحميل pip-9.0.1-py2.py3-none-any.whl (1.3MB)
استثناء:
Traceback (أحدث مكالمة أخيرة):
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip \ base
command.py "، السطر 223 ، بشكل رئيسي
الحالة = self.run (خيارات ، أرغس)
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip \ comm
ands \ install.py "، السطر 282 ، قيد التشغيل
condition_set.prepare_files (الباحث)
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpipreq \
req_set.py "، السطر 334 ، في ملفات التجهيز
functools.partial (self._prepare_file ، مكتشف))
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpipreq \
req_set.py "، السطر 321 ، في _walk_req_to_install
more_reqs = معالج (req_to_install)
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpipreq \
req_set.py "، السطر 491 ، في _prepare_file
جلسة = جلسة ذاتية)
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip \ down
load.py "، السطر 825 ، في unpack_url
جلسة،
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip \ down
load.py "، السطر 673 ، في unpack_http_url
from_path، content_type = _download_http_url (رابط ، جلسة ، temp_dir)
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip \ down
load.py "، السطر 886 ، في _download_http_url
_download_url (Resp، link، content_file)
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip \ down
load.py "، السطر 621 ، في _download_url
للقطعة قيد التقدم (resp_read (4096) ، 4096):
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip \ util
s \ ui.py "، السطر 135 ، في التكرار
self.next (ن)
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip_ven
dor \ progress__init __. py "، السطر 73 ، في التالي
self.update ()
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip_ven
dor \ progress \ bar.py "، السطر 82 ، قيد التحديث
self.writeln (خط)
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip_ven
dor \ progress \ helpers.py "، السطر 69 ، in writeln
طباعة (سطر ، نهاية = "، ملف = ملف ذاتي)
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip_ven
dor \ colorama \ ansitowin32.py "، السطر 133 ، في الكتابة
self.write_and_convert (نص)
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip_ven
dor \ colorama \ ansitowin32.py "، السطر 161 ، في write_and_convert
self.write_plain_text (نص ، مؤشر ، لين (نص))
ملف "D: \ Program Files \ Python27 \ lib \ site -packpip-7.1.0-py2.7.eggpip_ven
dor \ colorama \ ansitowin32.py "، السطر 166 ، في write_plain_text
self.wrapped.write (نص [البداية: النهاية])
خطأ UnicodeEncode: لا يمكن لبرنامج ترميز "ascii" ترميز الحرف u "\ u258f" في الموضع 8
: ترتيبي ليس في النطاق (128)

@ JingY0604 انظر # 3463.

يمكنك ترقية النقطة الخاصة بك عن طريق إزالة التثبيت الحالي واستخدام get-pip.py لتثبيت الإصدار الأحدث.

بالنسبة إلى https://github.com/ofek/hatch ، ألاحظ فقط جميع حالات تحديث الذات وعدم السماح بها. لدي بعد ذلك إشارة ذاتية صريحة للقيام بذلك بحيث يكون Popens python -m pip install -U hatch ويخرج على الفور.

https://github.com/ofek/hatch/blob/22e621715fbed36c2bfab35ae9fa9649ea6dfe1e/hatch/cli.py#L509

تحرير: من الناحية الفنية ، بدلاً من python ، يتم استخدام sys.executable الواقع

ofek # 4490 أجرى تغييرًا في النقطة ، وطبع رسالة أفضل ، IIRC.

حتى الآن إذا قمت بتثبيت python بدون نقطة ، فلن أتمكن من تثبيت وحدة pip في المستقبل؟

c:\Python27>python.exe get-pip.py ERROR: To modify pip, please run the following command: c:\Python27\python.exe -m pip

c:\Python27>c:\Python27\python.exe -m pip install c:\Python27\python.exe: No module named pip

ياihormelnyk!

هذا ليس هو الحال. كان الشرط لهذا الأمر واسعًا جدًا - فهو يمنع استخدام أي برنامج نصي به كلمة "نقطة" من تعديل النقطة. يمكنك محاولة إعادة تسمية get-pip.py بحيث لا تحتوي على كلمة "نقطة" للتغلب على هذه المشكلة.

الإصدار 10.0.1 (والذي من المحتمل أن يحدث هذا الأسبوع) سيصلح هذه المشكلة.

pradyunsg شكرا لتقاسم النصيحة. واجهت نفس المشكلة مثل ihormelnyk وأعدت تسمية الملف get-pip.py إلى اسم لا يحتوي على الكلمة pip ساعدت.

أنا أطبع النقطة في cmd inwindows ، لكنها أظهرت
خطأ فادح في المشغل: تعذر إنشاء عملية باستخدام '"" d: \ program files (x86) python3.6python.exe "" D: \ Program Files (x86) python3.6 \ Scriptspip.exe ""
لقد قمت بالفعل بتعيين بيئة للنقطة ، لكنها لا تعمل ، كيف يمكنني اكتشافها؟

@ BJQ98 تريد إلقاء نظرة على # 5223.

قال pradyunsg أن 10.0.1 ستصلح هذا ، لكنني لا أعرف كيف. شكر.

C:\Users\clarkk\AppData\Local\Programs\Python\Python36>python -m pip install -U pip
Collecting pip
  Using cached https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 9.0.3
    Uninstalling pip-9.0.3:
      Successfully uninstalled pip-9.0.3
  Rolling back uninstall of pip
Exception:
Traceback (most recent call last):
  File "C:\Users\clarkk\AppData\Roaming\Python\Python36\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "C:\Users\clarkk\AppData\Roaming\Python\Python36\site-packages\pip\commands\install.py", line 342, in run
    prefix=options.prefix_path,
  File "C:\Users\clarkk\AppData\Roaming\Python\Python36\site-packages\pip\req\req_set.py", line 784, in install
    **kwargs
  File "C:\Users\yangg\AppData\Roaming\Python\Python36\site-packages\pip\req\req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "C:\Users\clarkk\AppData\Roaming\Python\Python36\site-packages\pip\req\req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "C:\Users\clarkk\AppData\Roaming\Python\Python36\site-packages\pip\wheel.py", line 462, in move_wheel_files
    generated.extend(maker.make(spec))
  File "C:\Users\yangg\AppData\Roaming\Python\Python36\site-packages\pip\_vendor\distlib\scripts.py", line 372, in make
    self._make_script(entry, filenames, options=options)
  File "C:\Users\clarkk\AppData\Roaming\Python\Python36\site-packages\pip\_vendor\distlib\scripts.py", line 276, in _make_script
    self._write_script(scriptnames, shebang, script, filenames, ext)
  File "C:\Users\clarkk\AppData\Roaming\Python\Python36\site-packages\pip\_vendor\distlib\scripts.py", line 212, in _write_script
    launcher = self._get_launcher('t')
  File "C:\Users\clarkk\AppData\Roaming\Python\Python36\site-packages\pip\_vendor\distlib\scripts.py", line 351, in _get_launcher
    result = finder(distlib_package).find(name).bytes
AttributeError: 'NoneType' object has no attribute 'bytes'
You are using pip version 9.0.3, however version 10.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

سيكون هذا هو نفسه # 5343.

بفضل pradyunsg ، اتضح أن حل شخص آخر أبسط. أجريت للتو "python -m pip uninstall pip" أولاً ، ثم "python -m pip install -U pip"

تم تحديث المتطلبات بالفعل: pip in c: \ user \ clarkk \ appdata \ local \ Programs \ Python \ Python36 \ lib \ site -packs (10.0.1)

      Personally I think it should be windows only. I view it as a work around for the way the Windows platform works, and something that's a target to eventually remove for something nicer down the road.

أتلقى خطأ أثناء تشغيل الأمر أعلاه كخطأ في بناء الجملة للكلمة احصل على ما قد يكون الحل لهذا

AProNoob يجب عليك تشغيل الأوامر في موجه الأوامر (cmd أو بوويرشيل) ، وليس في موجه Python.

شكر! هذا مشغول!

تم قفل سلسلة الرسائل هذه تلقائيًا نظرًا لعدم وجود أي نشاط حديث بعد إغلاقه. الرجاء فتح قضية جديدة للأخطاء ذات الصلة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات