Pip: windows di tempat peningkatan pip

Dibuat pada 5 Nov 2013  ·  89Komentar  ·  Sumber: pypa/pip

tidak yakin dengan status pip install --ugrade pip di windows.

membutuhkan ini untuk PEP453

@pmoore ?

lihat # 188 untuk diskusi lama tentang ini.

windows auto-locked bug

Komentar yang paling membantu

Di Windows, gunakan jendela Command Prompt dalam mode Administrator. Kemudian ketik perintah
python -m pip install --upgrade pip

Saya harap ini berhasil untuk Anda. Begitulah cara saya membuatnya bekerja di Window 10

Semoga berhasil.

Semua 89 komentar

Gunakan python -m pip install --upgrade pip . Saya pikir @vsajip sedang mempertimbangkan beberapa bentuk sihir di bungkus exe yang berarti bahwa penggantian sendiri dari exe dapat dilakukan untuk berfungsi. Tapi saya tidak tahu apakah dia melakukan sesuatu dalam versi distlib yang kami gunakan. Saya sebenarnya tidak yakin itu adalah sesuatu yang _dapat_ dilakukan tanpa bantuan dari aplikasi (pip). Dan saya cukup yakin tidak ada kode yang ditambahkan ke pip untuk ini.

Secara pribadi, saya menganggap ini sebagai masalah kecil - memberi tahu orang-orang untuk menggunakan `` python -m pip '' bagi saya merupakan jawaban yang dapat diterima, mengingat bahwa masalah tersebut sangat mendasar tentang bagaimana Windows menangani penghapusan file yang terbuka.

Pada akhirnya, ini akan menjadi pertanyaan tentang seberapa besar kerumitan (dengan konsekuensi biaya pemeliharaan) dan risiko yang ingin kami ambil untuk menyelesaikannya.

Secara pribadi saya baik-baik saja dengan pip install --upgrade pip mencetak pesan untuk menggunakan python -m pip install --upgrade pip . Saya hanya tidak berpikir kita harus melempar kesalahan tentang pegangan file terbuka atau apa pun pengecualiannya.

Saya baru saja akan mengatakan hal yang sama.

Inilah pertanyaannya - apakah Anda ingin pesan itu hanya muncul di Windows, atau apakah masuk akal untuk mengatakan hal yang sama di Unix (untuk pengalaman pengguna yang konsisten). Secara pribadi, saya ingin konsisten di seluruh platform (karena lebih mudah untuk mendokumentasikannya).

Juga, kita harus menjebak perintah apa pun yang mencoba menginstal (ulang) pip - pip install -I pip adalah perintah lain, misalnya.

Secara pribadi saya pikir itu harus windows saja. Saya melihatnya sebagai solusi untuk cara kerja platform Windows, dan sesuatu yang pada akhirnya menjadi target untuk dihapus untuk sesuatu yang lebih baik di masa mendatang.

Saya tahu Anda akan mengatakan itu :-(

Terus terang, saya tidak percaya kita akan mendapatkan "sesuatu yang lebih baik", pada dasarnya karena kita tidak memiliki cukup keahlian Windows untuk mengembangkan dan memeliharanya. Saya tahu tentang _no_ perangkat lunak Windows dengan solusi pengganti mandiri yang memuaskan. Saya pasti tidak punya jawaban, dan saya tidak berharap ada pengembang berbasis Unix yang dapat membantu. Bahkan jika kami mendapatkan sesuatu, itu mungkin rumit dan kemungkinan sumber bug busuk dan tidak jelas.

Membuat solusi yang berfungsi di semua platform "jawaban resmi" menurut saya untuk menghindari pengiriman pesan yang membingungkan kepada pengguna. Cadangkan dengan peringatan seperti yang dijelaskan dan kami memiliki solusi yang kuat, meskipun itu tidak sesempurna mendapatkan pip install -U pip untuk bekerja.

Mohon maafkan keluhan ringan pada tingkat tertentu dalam balasan ini, yang disebabkan oleh perasaan bahwa selalu platform Windows yang harus dikompromikan - saya tidak bermaksud mempermasalahkan hal ini. Dalam praktiknya, saya akan mengikuti apa pun konsensusnya. Saya tidak berpikir itu masalah besar.

FWIW tujuan saya setelah PEP453 selesai adalah untuk mendapatkan infrastruktur pengujian kami sendiri yang berdiri termasuk Windows, jadi mudah-mudahan itu akan menyelesaikan beberapa masalah bitrot windows.

Saya dapat memahami kesedihannya :) Jika kami merancang sistem ini dengan merek baru, saya akan jauh lebih bisa menyesuaikannya, tetapi saya rasa tidak ramah pengguna untuk memecahkan pip install -U pip untuk semua yang bukan Windows untuk menjaga konsistensi. Jika ini adalah hal yang benar-benar baru maka tidak ada (atau kurang dari) harapan pengguna:]

Oke, kedengarannya adil. Anda benar bahwa penggunaan historis lebih penting di sini.

Saya sebenarnya sama sekali tidak merasakan pengalaman pengguna di Unix, jadi saya mungkin sama bersalahnya dengan pemikiran sepihak seperti orang lain. Saya harus mencoba untuk melihat bagaimana rasa menggunakan Python di Linux - apakah ada sumber "Python di Linux untuk pemula" yang bagus yang menunjukkan cara mengatur lingkungan Python (3), menyiapkan berbagai alat, dll? [Satu hal yang selalu saya temukan tidak tercakup, adalah bagaimana membuat "python" menjalankan Python 3 secara default, bagaimana membuat "virtualenv" membangun Python 3 virtualenvs secara default, semua hal semacam itu - menurut saya Python 3 jauh lebih kelas dua di Unix daripada di Windows, anehnya.]

Biasanya Anda tidak ingin membuat python menunjuk ke python3 di * nix karena sistem menggunakan Python dan tidak semua pustaka mereka akan di-porting ke Python3. Namun ada beberapa distro Linux yang menggunakan Python3 sebagai default sekarang ... Saya pikir Arch? Dan Mungkin Fedora berikutnya?

Hmm, saya tidak berbicara pada level sistem, tetapi benarkah Anda tidak dapat memilih apa yang akan digunakan untuk Python di akun pribadi Anda? Itu pasti membuat Python 3 kelas dua, menurut cara berpikir saya ... Tapi itu menjelaskan mengapa pengguna Unix tampaknya tidak menganggap menggunakan hal-hal seperti "pip3" atau "pip3.3" sama jeleknya dengan sin :-)

(Pokoknya, kami jauh dari topik di sini, jadi sudahlah).

Anda dapat mengatur shell Anda sehingga memiliki ~ / bin / sebelum sistem bin dan menambahkan symlink di sana dari python ke python3, tapi ya offtopic. Saya dengan senang hati membantu jika Anda benar-benar tertarik untuk menyiapkan sesuatu:] IRC atau Email.

Pekerjaan saya yang saya percaya Paulus maksudkan hanyalah untuk mengimplementasikan tarian 'deleteme' untuk mengganti file yang digunakan (yaitu pembungkus exe) - itu dalam distlib kode Python, bukan dalam pembungkus .exe. Ini ada dalam modul distlib.scripts dan harus dijalankan setiap kali modul itu digunakan untuk membuat skrip.

Jadi mungkin ini sudah diselesaikan untuk Roda? Dan itu juga masalah setuptools?

Kedengarannya mungkin. Saya akan melakukan beberapa tes hari ini, jika saya bisa.

Sayangnya tidak, setidaknya dengan "pip install -I pip". (Sulit untuk menguji peningkatan yang sebenarnya, karena hanya pip versi terbaru absolut yang memiliki dukungan pembungkus skrip):

>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

Jadi pip tidak menggunakan distlib.scripts untuk memasang skrip ... Saya rasa ini tidak sesuai dengan alur kerja pip .

Saya menduga itu karena kami melakukan uninstall kemudian menginstal, daripada menginstal menimpa apa yang ada (untuk alasan yang jelas).

Windows tidak mengizinkan penimpaan atau penghapusan file exe yang terbuka, tetapi Windows mengizinkan penggantian nama / pemindahan.

Nah, dengan beberapa kebodohan dengan Win32 API Anda dapat menutup pegangan ke pip.exe seperti yang Anda bisa saat menggunakan penjelajah proses Sysinternal.

Saya tidak berpikir Anda dapat menutup semua pegangan ke exe yang sedang berjalan. Tetapi jika Anda memiliki kode yang berfungsi sebagai contoh, saya ingin melihatnya, karena ini telah lama menjadi masalah yang diperdebatkan orang dan konsensusnya adalah bahwa itu tidak mungkin (kecuali dengan trik seperti "ganti nama dan hapus nanti" ). Kode kerja yang melakukan ini akan sangat berguna bagi komunitas.

Mengalami masalah yang sama.

Sebagai peretasan cepat, dapatkah pip.exe mendeteksi bahwa itu sedang ditingkatkan sebelum eksekusi dan memulai ulang sendiri dengan python -m pip {{ sys.argv }} ?

Saya tidak berpikir itu benar-benar berhasil.

Tapi mungkin pemikiran yang bodoh, afaik the .exe tidak perlu diupdate, bolehkah kita khusus case pip.exe dan biarkan saja? Mungkin akan meninggalkan pip.exe yang tergeletak setelah instalasi.

@dstufft benar, "restart sendiri" tidak sesederhana @techtonik membuatnya terdengar di Windows, di mana tidak ada yang setara dengan panggilan Unix exec .

Secara teknis, pip.exe mungkin perlu diperbarui jika titik entri berubah atau jika kode pembungkus distlib diubah. Itu tidak umum, tetapi itu bisa terjadi (sejak awal, kode distlib berubah sedikit sampai semuanya beres). Apa yang mungkin dilakukan adalah menulis pip.exe ke lokasi sementara, kemudian jika identik dengan yang sekarang, lewati saja. Anda tidak akan menghindari kesalahan ketika memang perlu diperbarui, tetapi dalam 99% kasus ketika tidak, Anda akan baik-baik saja.

BTW, kami berputar-putar di sini. Menurut komentar Vinay sebelumnya, ini diselesaikan di distlib (yang menurut saya harus diselesaikan) tetapi pip tidak menggunakan API dengan cara yang memungkinkannya berfungsi. Jika kita bisa menggunakan solusi distlib, maka bagus. Jika tidak, kami membutuhkan seseorang untuk menulis solusi khusus pip (dan saya tetap skeptis bahwa ini dapat dilakukan dengan cara yang kuat dan dapat dipelihara yang tidak jauh lebih kompleks daripada masalah yang dibutuhkan).

Saran:

  1. Seseorang menambahkan bagian ke dokumen pip di http://www.pip-installer.org/en/latest/installing.html#install-or-upgrade-pip mencatat bahwa solusi python -m pip diperlukan di Windows saat mengupgrade pip dengan sendirinya. Saya mungkin mendapat kesempatan untuk melakukan ini di beberapa titik, tetapi PR dari orang-orang yang telah berkontribusi dalam masalah ini akan diterima dengan senang hati :-).
  2. Jika ada yang memiliki solusi yang layak, dan siap untuk mengimplementasikannya, mereka harus meningkatkan PR dan kami dapat meninjau kode aktual daripada pendekatan yang diusulkan.

Saya pikir kita berada pada tahap di mana kode kerja yang sebenarnya adalah satu-satunya hal yang akan memajukan masalah ini.

Saya -1 tentang membengkak dokumen tanpa mencoba solusi lain.

Saya memberi +1 untuk mendokumentasikan apa yang berhasil saat ini.

Bahkan dengan komentar dokumen, itu masih solusi - bukan solusi, dan Anda memiliki prompt perintah untuk Windows yang salah.

Mungkin ini gila tapi saya selalu melakukan ini:

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

tentu saja ini membutuhkan seseorang untuk memiliki libcurl, tetapi ada binari windows yang tersedia di sini .

Saya sudah mencoba menginstalnya di Mac tetapi saya menerima ini

Alexs-MacBook- Air: Pipmodules dan $ pip install -U pip
-bash: pip: perintah tidak ditemukan
Alexs-MacBook- Air: Pipmodules ale dan $ python get-pip.py
Mendownload / membongkar pip
Mengunduh pip-1.5.5-py2.py3-none-any.whl (1.2MB): 1.2MB diunduh
Menginstal paket yang dikumpulkan: pip
Membersihkan...
Pengecualian:
Traceback (panggilan terakhir terakhir):
File "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/basecommand.py", baris 122, di main
status = self.run (opsi, args)
File "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/commands/install.py", baris 283, sedang dijalankan
Requirement_set.install (install_options, global_options, root = options.root_path)
File "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/req.py", baris 1435, sedang dipasang
Requirement.install (install_options, global_options, _args, * _kwargs)
File "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/req.py", baris 671, sedang dipasang
self.move_wheel_files (self.source_dir, root = root)
File "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/req.py", baris 901, di move_wheel_files
pycompile = self.pycompile,
File "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/wheel.py", baris 215, di move_wheel_files
clobber (sumber, lib_dir, True)
File "/var/folders/8g/b9q8snrd5ln_d5hqnwh2_86r0000gn/T/tmpFTGrC3/pip.zip/pip/wheel.py", baris 205, di clobber
os.makedirs (destdir)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", baris 157, di makedirs
mkdir (nama, mode)
OSError: [Errno 13] Izin ditolak: '/Library/Python/2.7/site-packages/pip'

Menyimpan log debug untuk kegagalan di /Users/aleand/Library/Logs/pip.log

@zaducu , saya dapat mengetahui dari traceback Anda bahwa Anda mencoba memperbarui versi pip yang ada di versi Python yang sudah diinstal sebelumnya dengan mac Anda. Karena Anda memperbarui versi pra-instal, Anda perlu meningkatkan kredensial Anda dengan menggunakan sudo :

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

Untuk menggunakan sudo Anda mungkin harus menambahkan diri Anda sendiri ke /etc/sudousers . Google itu dan Anda akan menemukan banyak tautan yang menunjukkan bagaimana melakukan ini.

Mac itu cerdas, ia menyimpan paket Anda di /Library/Python alih-alih merusak folder /System/Frameworks/Python.framework site-pacakges . Yay! Tetapi untuk mengakses folder ini Anda harus menjadi administrator dengan hak akses root, karenanya sudo .

Alternatif untuk dipertimbangkan adalah dengan memisahkan paket dan modul pribadi Anda dengan menggunakan virtualenv dan / atau folder .local . Untuk menginstal paket ke dalam folder lokal, gunakan distutils daripada pip dan ikuti petunjuk untuk menginstal modul python .

Alternatif lain untuk menggunakan Python yang sudah diinstal sebelumnya adalah dengan menggunakan Python resmi , homebrew , MacPorts, Fink atau membuatnya sendiri.

Untuk Python resmi, Anda masih membutuhkan sudo tetapi akan menginstal sebagian besar item di /System/Frameworks bukan /System/Library/Frameworks Untuk Homebrew, Anda tidak perlu sudo . Tidak dapat berbicara untuk MacPorts atau Fink.

Masih mengalami masalah yang sama di Windows, memutakhirkan dari 1.5.4 ke 6.0.8:

E: \ Distrib \ Programming> pip install -U pip
Mengunduh / membongkar pip dari https://pypi.python.org/packages/py2.py3/p/pip/pip-6.0.8-py2.py3-none-any.whl#md5 = 41e73fae2c86ba2270ff51c1d86
f7e09
Menginstal paket yang dikumpulkan: pip
Instalasi yang sudah ditemukan: pip 1.5.4
Menghapus instalasi pip:
Berhasil mencopot pemasangan pip
Membersihkan...
Pengecualian:
Traceback (panggilan terakhir terakhir):
File "C: \ Python \ 3.3-32 \ lib \ shutil.py", baris 371, di _rmtree_unsafe
os.unlink (nama lengkap)
PermissionError: [WinError 5] Отказано в доступе: 'c: \ users \ bialix \ appdata \ local \ temppip-6i_i7a-uninstallpython \ 3.3-32 \ scripts \ p
ip.exe '

Selama menangani pengecualian di atas, pengecualian lain terjadi:

Traceback (panggilan terakhir terakhir):
File "C: \ Python \ 3.3-32 \ lib \ site-packagespip \ basecommand.py", baris 122, di main
write_debug_log = check_path_owner (debug_log_path)
File "C: \ Python \ 3.3-32 \ lib \ site-packagespip \ commands \ install.py", baris 283, sedang dijalankan
build_delete = (bukan (options.no_clean atau options.build_dir))
File "C: \ Python \ 3.3-32 \ lib \ site-packagespipreq.py", baris 1443, sedang dipasang
File "C: \ Python \ 3.3-32 \ lib \ site-packagespipreq.py", baris 610, di commit_uninstall
File "C: \ Python \ 3.3-32 \ lib \ site-packagespipreq.py", baris 1860, dalam komit
File "C: \ Python \ 3.3-32 \ lib \ site-packagespip \ util.py", baris 43, di rmtree
File "C: \ Python \ 3.3-32 \ lib \ shutil.py", baris 478, di rmtree
return _rmtree_unsafe (jalur, onerror)
File "C: \ Python \ 3.3-32 \ lib \ shutil.py", baris 368, di _rmtree_unsafe
_rmtree_unsafe (nama lengkap, onerror)
File "C: \ Python \ 3.3-32 \ lib \ shutil.py", baris 368, di _rmtree_unsafe
_rmtree_unsafe (nama lengkap, onerror)
File "C: \ Python \ 3.3-32 \ lib \ shutil.py", baris 368, di _rmtree_unsafe
_rmtree_unsafe (nama lengkap, onerror)
File "C: \ Python \ 3.3-32 \ lib \ shutil.py", baris 373, di _rmtree_unsafe
onerror (os.unlink, nama lengkap, sys.exc_info ())
File "C: \ Python \ 3.3-32 \ lib \ site-packagespip \ util.py", baris 62, di rmtree_errorhandler
PermissionError: [WinError 5] Отказано в доступе: 'c: \ users \ bialix \ appdata \ local \ temppip-6i_i7a-uninstallpython \ 3.3-32 \ scripts \ p
ip.exe '

Adakah perubahan tentang masalah ini?

Ini tidak dapat diperbaiki dalam arti praktis (setidaknya, seseorang akan perlu menyediakan patch yang berfungsi lengkap untuk penilaian jika mereka mengira demikian, karena belum ada yang menemukan cara untuk memperbaikinya - ini pada dasarnya adalah batasan Windows).

Cara yang benar untuk mengupgrade pip di Windows adalah python -m pip install -U pip .

@pfmoore Bagaimana dengan 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

@Dalcinl Saya benci harus memikirkan Python 2.6 :-)

Jika saya ingat, python -m pip.__main__ bekerja di sana. Saya tidak memiliki salinan Python 2.6 untuk mengujinya saat ini, maaf ...

Saya baru saja menguji Python 2.6, dan python -m pip.__main__ memang berfungsi di sana.

Halo!

python -m pip install -U pip tidak bekerja untuk saya (w7, powershell, python diinstal melalui chocolatey); penginstalan gagal dengan masalah izin:

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'

Pikiran?

Tidak ada cara untuk mengunci file itu, atau Anda tidak memiliki izin untuk menghapusnya. Mungkinkah ini masalah cokelat? Bisakah Anda menghapus file itu secara manual dari prompt perintah?

@AmazingHorse sudahkah Anda mencoba

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

dengan asumsi Anda memiliki cURL ?

Menarik, @pfmoore , file tersebut dikunci bahkan pada prompt perintah administrator.

Jadi, terdengar seperti masalah perizinan windows daripada sesuatu dengan pip.

Apakah ini ada hubungannya dengan fakta bahwa python saya dipasang di luar struktur direktori windows di C:?

Saya akan googling ini tetapi saya ingin tahu apakah ada yang bisa memposting di sini apa yang menurut mereka mungkin disebabkan oleh ini.

Cheers guys

@AmazingHorse Jujur saya tidak tahu. Kemungkinan lainnya adalah bahwa mungkin ada sesuatu yang khusus tentang bagaimana Chocolatey menginstal Python - mungkin melaporkan masalah ini ke pelacak mereka (saya berasumsi mereka memilikinya?) Dan lihat apa yang mereka katakan.

Tapi ya, ini bukan masalah pip dari suaranya.

Windows memungkinkan penggantian nama / pemindahan file yang dipetakan memori (dipetakan sebagai gambar atau data) ke nama baru pada volume yang sama. Jadi penangan kesalahan rmtree dapat mencoba mengganti nama file untuk memindahkannya ke direktori temp dasar. Setidaknya di sana itu tidak akan mengganggu penghapusan direktori. Solusi ini gagal jika file berada pada volume yang berbeda dari direktori temp, atau karena pelanggaran berbagi, atau jika ACL file mencegah operasi. Tapi tidak satupun dari itu harus diterapkan dalam kasus ini.

Jika grup Administrator diaktifkan dalam token proses, maka file yang diubah namanya dapat dijadwalkan untuk dihapus ketika sistem dimulai ulang. Cukup gunakan ctypes untuk memanggil MoveFileExW(path, None, MOVEFILE_DELAY_UNTIL_REBOOT) . Namun, ini gagal untuk pengguna biasa, karena mereka tidak diizinkan untuk mengubah nilai registri PendingFileRenameOperations dari manajer sesi.

pip di windows 7/10 berfungsi dengan baik kecuali untuk update> pip install --upgrade pip
Saya mencoba memuat sesedikit mungkin ke C: \ (SSD) saya dan menginstal perangkat lunak ke pohon mulai dari D: \ NUC \
Inilah yang saya lihat:

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'

Jalur folder AppData tersedia di drive D: saya, bertanya-tanya bagaimana cara terbaik menangani situasi ini untuk alat dan penggunaan selanjutnya. Memikirkan persimpangan, tetapi masih tampak seperti perjalanan yang berbeda. Mungkin skrip perbedaan dari lokasi yang diharapkan ke lokasi sebenarnya untuk memeriksa memberikan jalur yang benar? Sebelum melakukan ini, pip menginstal django dengan baik (tetapi mengeluh tentang versi yang menyebabkan penemuan ini). hmmm ... dan sekarang pip sepertinya rusak.

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>

Anda harus melakukan python.exe -m pip install --upgrade pip

Pada Python 2.6 Anda perlu menjalankan python -m pip.__main__ install -U pip

Saya menganggap situasi saat ini sangat buruk untuk pengguna Python baru serta untuk pengguna Python lama seperti saya yang biasanya tidak menggunakan Windows. Saya baik-baik saja menggunakan python -m pip install --upgrade pip , tapi menurut saya pip install --upgrade pip harus merekomendasikannya secara otomatis di Windows. @dufft sudah mengusulkan ini pada tahun 2013. Apakah ada alasan bagus untuk tidak melakukannya?

PS: Maaf telah melaporkan # 3462 sebagai duplikat dari masalah ini. Saya tidak menemukan masalah ini dengan menelusuri pelacak WindowsError . Semoga setelah komentar ini orang lain akan melakukannya.

Sepengetahuan saya, itu sudah merupakan perintah yang disarankan pip kepada pengguna saat mendeteksi versi baru itu sendiri. Situasinya tidak terlalu buruk.

@pekkaklarck Alasan utama untuk tidak melakukannya adalah karena sangat sulit dikenali. Sebagai permulaan, saya tidak tahu bagaimana mendeteksi secara andal bahwa pip dijalankan dari pip.exe daripada dari python -m pip . Dan bahkan jika Anda mendeteksinya, Anda perlu memeriksa apakah pip ada dalam hal-hal yang sedang diinstal (pertimbangkan pip install --upgrade -r http://some.remote/requirements.txt - pada saat Anda membaca file persyaratan, mungkin sudah terlambat untuk menerbitkan pesan).

Tentu saja, sesuatu yang tidak 100% sempurna adalah hal yang sepenuhnya masuk akal untuk diterapkan - ini memastikan kami tidak menolak penggunaan yang sepenuhnya valid, daripada memastikan kami menangkap semua kasus sudut, itu sangat penting.

Kami pasti akan mempertimbangkan untuk menggabungkan PR untuk mengatasi masalah ini, tetapi saya rasa tidak ada pengembang pip inti yang menganggap masalah ini cukup bermasalah untuk mencoba memperbaikinya sendiri (saya mungkin pengguna Windows terberat di pengembang inti, dan Saya merasa mengingat untuk menggunakan python -m pip cukup mudah).

untuk tujuan menemukan apakah kita pip[.exe] atau tidak, saya kira

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

akan bekerja dengan baik. Juga hanya peringatan untuk melihat [-U|--upgrade] dan pip dalam pemanggilan mungkin sudah cukup untuk memperbaiki 90% pemanggilan.

@stonebig : Bisakah Anda menjelaskan kapan perintah itu direkomendasikan? Saya mencoba pip install -U pip setelah instalasi Python 2.7.11 baru dan gagal dengan kesalahan ini:

WindowsError: [Kesalahan 5] Akses ditolak: 'c: \ users \ koulutus \ appdata \ local \ temppip-65z4kx-uninstallpython27 \ scriptspip.exe'

@pfmoore : Mengupgrade pip dalam file persyaratan terdengar sangat jarang dan mungkin dapat diabaikan. Seperti @Ivoz, saya pikir pip.exe akan menjadi sys.argv . Atau itu harus mungkin untuk menangkap WindowsError dan bereaksi terhadap itu.

@Ivoz apakah itu berfungsi? Saya pikir pembungkus pip.exe memanggil python sebagai subproses, jadi itu tidak akan berhasil. Tetapi tes cepat (mencetak sys.argv[0] dalam pip.main() ) menunjukkan:

>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:

Jadi itu berhasil, tetapi Anda harus berhati-hati bagaimana Anda melihat pip di sys.argv[0] (perhatikan bahwa contoh pertama menyertakan direktori pip di jalur ke __main__.py )

Terima kasih telah menunjukkan hal ini. Saya belajar sesuatu hari ini :-)

@pekkaklarck Masalah dengan menangkap WindowsError (jika saya ingat) adalah bahwa hal itu terjadi cukup terlambat, dan penginstalannya sebagian selesai (dan tidak mudah untuk diputar kembali).

Tetapi saya tidak ingin menghalangi siapa pun untuk mencoba memperbaiki masalah ini, jadi saya akan berhenti di situ :-)

tetapi Anda harus berhati-hati dalam melihat pip di sys.argv [0]

@pfmoore maka panggilan ke os.path.basename .

@Majelispesona Di sini sudah larut malam. Ya, jelas :-)

@peklar dengan contoh saat melakukan pip list (di windows). Sejauh yang saya ingat dalam diskusi tahun lalu:

  • ini adalah satu-satunya solusi yang dibayangkan tim pypa dapat diandalkan,
  • itu hanya ditampilkan di windows.

pip_example

Mungkin ada solusi yang lebih baik, tetapi saya menganggap itu sudah 80% dari jawaban yang sempurna dari situasi sebelumnya.

Mungkin solusi yang lebih baik adalah memiliki "upgrade_pip.bat" yang dikirimkan dengan instalasi Windows default python, tidak terikat ke "pip", dan itu akan melakukan perintah itu. (atau pip_update.bat agar lebih cocok dengan conda?)

Saya mencapai ini hari ini sambil menyelami pengalaman pengguna Windows Python yang segar. Itu sungguh mengerikan.
Bisakah kita membuat -m otomatis untuk perintah itu? (mungkin berikan upgrade pip itu perintahnya sendiri?)

Tidak ada pengguna yang harus melihat ini, terutama setelah menjalankan persis perintah _pip yang menyuruh mereka untuk run_.

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

Saya rasa kita sudah memiliki setup logging di versi pip yang lebih baru daripada 7.0.1 untuk memberi tahu pengguna Windows untuk menggunakan python -m pip install --upgrade pip daripada pip install --upgrade pip .

: berkilau:: kue:: berkilau:

Ya, sejak 7.1 cf # 2830

\HAI/

Saya tidak bisa mengupgrade pip saya pada win 10, apa yang salah?

default

@sukabumi
Jika Anda benar-benar ingin tahu apa yang salah, silakan baca utas ini. Jika Anda hanya tertarik untuk membuat ini berfungsi, silakan baca baris terakhir dari output yang Anda dapatkan dan bandingkan dengan apa yang Anda jalankan.

@ piotr-dobrogost
Apakah itu? Garis merah terakhir tampaknya menunjukkan masalah decoding, bukan kesalahan akses ditolak yang merupakan hasil biasa dari pembaruan tempat pada Windows. Bisakah masalah @grasx terkait dengan penggunaan halaman kode cyrillic?

Saya ragu masalah yang ditemui @grasx terkait dengan masalah ini. Saya telah melihat masalah serupa di Windows. Lihat # 3463.

@ nmusatti
Kamu benar. Salahku.

@ piotr-dobrogost @nmusatti @pekkaklarck Namun, terima kasih, saya mengganti nama pengguna, jadi sekarang hanya berisi karakter ASCII dan berhasil mengupgrade pip ke 8.1

@grasx mengganti nama pengguna? Saya bingung dengan apa yang Anda katakan ... Saya mendapat masalah yang sama, sesuatu yang berbeda adalah saya berada di windows 7

ide acak, bagaimana kalau tidak mengganti file exe jika tidak perlu

Sejauh yang saya mengerti file exe adalah trampolin sangat kecil yang biasanya berfungsi

logika yang lebih penting ada dalam file skrip yang menyertainya

@ pzz2011 Sebenarnya, saya menginstal ulang kemenangan saya dan menetapkan nama pengguna baru. Dalam kasus saya, lebih mudah untuk mencari tahu bagaimana mengubahnya di semua tempat dan rute yang disebutkan :)

@RonnyPfannschmidt Tergantung apa yang digunakan untuk menulis .exe - setuptools yang digunakan untuk menggunakan foo.exe + foo-script.py (tidak yakin apa fungsinya sekarang), sedangkan distlib (jika dikonfigurasi demikian) membuat satu foo.exe yang menyematkan skrip.

@grasx hhh ... Saya menemukan cara yang lebih mudah untuk menyelesaikannya. Saya baru saja menginstal ulang python dari 2.7.x ke 2.7.10.
Kemudian senyum sukses untuk saya ~

Di Windows, gunakan jendela Command Prompt dalam mode Administrator. Kemudian ketik perintah
python -m pip install --upgrade pip

Saya harap ini berhasil untuk Anda. Begitulah cara saya membuatnya bekerja di Window 10

Semoga berhasil.

@grasx Tidak sepenuhnya yakin mengapa, tetapi bug itu muncul saat memilih "instal untuk semua pengguna" pada penginstal Python di windows 8.1 dan 10. Lakukan instal ulang, pilih PATH dan instal kustom. Pastikan kotak paling atas tidak dicentang dan pilih lokasi pemasangan. Menggunakan "python -m pip install --upgrade pip" di cmd berfungsi dengan baik setelah itu.

Hanya FYI, untuk pengguna Windows. Jika Anda menginstal Cygwin, Python2.7 diinstal secara otomatis. Yang perlu Anda lakukan adalah menjalankan:

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

(Ya, Anda perlu menginstal wget terlebih dahulu.)

image
Bagaimana Mengatasi Masalah Ini?

@JingYang
Lihat Untuk menyalin teks dari jendela prompt perintah untuk penjelasan tentang cara menyalin teks di sini. Dengan cara ini teks yang Anda posting akan dapat dicari.

Anda menggunakan pip versi 7.1.0, namun versi 9.0.1 tersedia.
Anda harus mempertimbangkan untuk memutakhirkan melalui komunikasi 'python -m pip install --upgrade pip'
dan.
D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip_vendorrequ
ests \ packages \ urllib3 \ util \ ssl_.py: 90: InsecurePlatformWarning: SSLContex sejati
t objek tidak tersedia. Ini mencegah urllib3 mengkonfigurasi SSL yang sesuai
ely dan dapat menyebabkan koneksi SSL tertentu gagal. Untuk informasi lebih lanjut, lihat htt
ps: //urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Mengumpulkan pip
Mengunduh pip-9.0.1-py2.py3-none-any.whl (1,3MB)
Pengecualian:
Traceback (panggilan terakhir terakhir):
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip \ base
command.py ", baris 223, di main
status = self.run (opsi, args)
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip \ comm
ands \ install.py ", baris 282, sedang dijalankan
requirement_set.prepare_files (pencari)
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpipreq \
req_set.py ", baris 334, di prepared_files
functools.pihak (self._prepare_file, finder))
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpipreq \
req_set.py ", baris 321, di _walk_req_to_install
more_reqs = handler (req_to_install)
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpipreq \
req_set.py ", baris 491, di _prepare_file
sesi = sesi sendiri)
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip \ down
load.py ", baris 825, di unpack_url
sidang,
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip \ down
load.py ", baris 673, di unpack_http_url
from_path, content_type = _download_http_url (tautan, sesi, temp_dir)
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip \ down
load.py ", baris 886, di _download_http_url
_download_url (resp, link, content_file)
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip \ down
load.py ", baris 621, di _download_url
untuk potongan dalam progress_indicator (resp_read (4096), 4096):
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip \ util
s \ ui.py ", baris 135, di iter
self.next (n)
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip_ven
dor \ progress__init __. py ", baris 73, di depan
self.update ()
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip_ven
dor \ progress \ bar.py ", baris 82, sedang diperbarui
self.writeln (baris)
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip_ven
dor \ progress \ helpers.py ", baris 69, di writeln
cetak (baris, akhir = '', file = self.file)
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip_ven
dor \ colorama \ ansitowin32.py ", baris 133, di tulis
self.write_and_convert (teks)
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip_ven
dor \ colorama \ ansitowin32.py ", baris 161, di write_and_convert
self.write_plain_text (teks, kursor, len (teks))
File "D: \ Program Files \ Python27 \ lib \ site-packagespip-7.1.0-py2.7.eggpip_ven
dor \ colorama \ ansitowin32.py ", baris 166, di write_plain_text
self.wrapped.write (teks [mulai: akhir])
UnicodeEncodeError: 'ascii' codec tidak dapat menyandikan karakter u '\ u258f' di posisi 8
: ordinal tidak dalam jangkauan (128)

@ JingY0604 Lihat # 3463.

Anda dapat mengupgrade pip Anda dengan menghapus instalasi yang ada dan menggunakan get-pip.py untuk menginstal versi yang lebih baru.

Untuk https://github.com/ofek/hatch, saya hanya menangkap semua contoh pembaruan diri dan melarangnya. Saya kemudian memiliki flag --self eksplisit untuk dilakukan sehingga Popens python -m pip install -U hatch dan segera keluar.

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

edit: secara teknis, alih-alih hanya python , sebenarnya digunakan sys.executable

@ofek # 4490 membuat perubahan dalam pip, mencetak pesan yang lebih baik, IIRC.

Jadi untuk saat ini jika saya telah menginstal python tanpa pip, saya tidak akan dapat menginstal modul pip di masa mendatang?

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

Hai @ihormelnyk!

Bukan itu masalahnya. Persyaratan untuk ini terlalu luas - ia memblokir menggunakan skrip apa pun dengan kata "pip" di dalamnya dari memodifikasi pip. Anda dapat mencoba mengganti nama get-pip.py agar tidak mengandung kata "pip", untuk mengatasi masalah ini.

Rilis 10.0.1 (yang kemungkinan akan terjadi minggu ini) akan memperbaiki masalah ini.

@pradyunsg terima kasih telah membagikan tipnya. Saya mengalami masalah yang sama dengan @ihormelnyk dan mengganti nama file get-pip.py menjadi nama yang tidak mengandung kata pip help.

Saya mencetak pip dalam cmd inwindows, tetapi itu menunjukkan
Kesalahan fatal dalam peluncur: Tidak dapat membuat proses menggunakan '"" d: \ program files (x86) python3.6python.exe "" D: \ Program Files (x86) python3.6 \ Scriptspip.exe "'
Saya sudah menetapkan lingkungan untuk pip, tetapi tidak berhasil, bagaimana cara mengetahuinya?

@ BJQ98 Anda ingin melihat # 5223.

pradyunsg mengatakan 10.0.1 akan memperbaiki ini, tetapi saya tidak tahu caranya. Terima kasih.

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.

Itu akan sama dengan # 5343.

Terima kasih pradyunsg, solusi orang lain ternyata lebih sederhana. Baru saja melakukan "python -m pip uninstall pip" terlebih dahulu, lalu "python -m pip install -U pip"

Persyaratan sudah terkini: pip di c: \ user \ clarkk \ appdata \ local \ Programs \ Python \ Python36 \ lib \ site-packages (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.

Saya mendapatkan kesalahan saat menjalankan perintah di atas sebagai kesalahan sintaks untuk kata mendapatkan apa yang mungkin menjadi solusi untuk ini

@AProNoob Anda harus menjalankan perintah pada prompt perintah (cmd atau PowerShell), bukan pada prompt Python.

Terima kasih! Berhasil!

Utas ini telah dikunci secara otomatis karena tidak ada aktivitas baru-baru ini setelah ditutup. Silakan buka masalah baru untuk bug terkait.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat