การเข้าถึงการติดตั้ง pip ถูกปฏิเสธบน Windows


110

ฉันพยายามทำงานpip install mitmproxyบน Windows แต่ฉันยังคงถูกปฏิเสธการเข้าถึงอยู่ตลอดเวลาแม้ว่าจะมีcmdและPowerShellใช้Run as Administratorตัวเลือกนี้ก็ตาม

WindowsError: [Error 5] Access is denied: 'c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6u\\cryptography-0.9.1\\.eggs\\cffi-1.1.2-py2.7-win-amd64.egg\\_cffi_backend.pyd'

ฉันจะทำงานนี้ได้อย่างไร?


นอกจากนี้ยังมีโพสต์เก่า ๆ ที่ดี: มีความคิดอย่างไรในการอัปเดต python PIP บนกล่อง windows?
strpeter

คำตอบ:


140

ในกรณีของ windows ใน cmd พยายามเรียกใช้ pip install โดยใช้ python executable

เช่น

python -m pip install mitmproxy

สิ่งนี้ควรได้ผลอย่างน้อยก็ใช้ได้สำหรับฉันสำหรับการติดตั้งแพ็คเกจอื่น ๆ


6
ไม่ว่าด้วยเหตุผลใดสิทธิ์ของไฟล์ชั่วคราวจึงน้อยกว่าการควบคุมทั้งหมดสำหรับผู้ใช้ของฉัน เส้นทางนี้python -mสร้างความแตกต่าง
Jason Dunkelberger

2
เรารู้หรือไม่ว่าทำไมถึงได้ผล? และไม่ผ่าน powershell?
Big Money

66

เปลี่ยนสิทธิ์การรักษาความปลอดภัยของโฟลเดอร์การติดตั้ง Python ของคุณโดย:

  1. เปิด Python shell
  2. ไปที่ตัวจัดการงาน
  3. ค้นหากระบวนการ python
  4. คลิกขวาและเปิดตำแหน่ง
  5. โฟลเดอร์จะเปิดขึ้นใน explorer ขึ้นไดเรกทอรี
  6. คลิกขวาที่โฟลเดอร์และเลือกคุณสมบัติ
  7. คลิกแท็บความปลอดภัยแล้วกด 'แก้ไข'
  8. เพิ่มทุกคนและให้สิทธิ์พวกเขาในการอ่านและเขียน
  9. บันทึกการเปลี่ยนแปลงของคุณ

หากคุณเปิดcmdเป็นผู้ดูแลระบบ จากนั้นคุณสามารถทำสิ่งต่อไปนี้:

หาก Python ถูกตั้งค่าในของคุณPATHแล้ว:

python -m pip install mitmproxy

3
ฉันต้องทำสิ่งนี้สำหรับทั้งแพ็คเกจแอปพลิเคชันและผู้ใช้ทั้งหมด แต่ก็ใช้งานได้
พงศาวดาร

1
ทำงานได้อย่างสมบูรณ์แบบ ขอบคุณมาก!
Sudipto Shome

3
เส้นทางอื่นที่มีความพยายามคล้ายกัน: 1) ติดตั้ง Linux 2)sudo pip install foo
Nearoo

2
@Chronicle คุณอนุญาตให้ทุกคนอ่านและเขียนลงในโปรไฟล์ผู้ใช้ได้จริงหรือ? ถ้าใช่มันเป็นความคิดที่ค่อนข้างแย่ (แย่มาก)
David Ferenczy Rogožan

@Richard การเพิ่มสิทธิ์ในการอ่านและเขียนลงในไดเร็กทอรีของ Python สามารถแก้ปัญหาได้อย่างไรเมื่อสิทธิ์ถูกปฏิเสธในtempไดเร็กทอรีของผู้ใช้ ฉันจะบอกว่ามันเป็นวิธีการดำเนินการpip( python -m pipแทนที่จะpipเป็นอย่างที่ @nayak แนะนำ) สิ่งที่ช่วยได้ 9 ขั้นตอนก่อนหน้านี้น่าจะไม่เกี่ยวข้อง (เพราะมันไม่สมเหตุสมผลเลย)
David Ferenczy Rogožan

27

ส่วนตัวผมพบว่าการเปิดcmdเป็นผู้ดูแลระบบแล้ววิ่ง python -m pip install mitproxy ดูเหมือนว่าจะแก้ไขปัญหาของฉัน

หมายเหตุ: -ฉันติดตั้ง python ผ่านไฟล์chocolatey


คุณช่วยวันของฉันพี่ชาย!
Maulik Dodia

1
หากคุณทำงานcmdในฐานะผู้ดูแลระบบคุณควรจะทำตามปกติpip install [package]ได้ ทำงานให้ฉันต่อไป
EliSquared

14

สิ่งเพิ่มเติมอีกอย่างหนึ่งที่ไม่ได้กล่าวถึงในคำตอบก่อนหน้านี้และมักทำให้เกิดปัญหาใน Windows และทำให้ฉันไม่สามารถติดตั้งแพ็คเกจบางอย่างได้แม้จะทำงานในฐานะผู้ดูแลระบบก็คือคุณได้รับข้อผิดพลาดที่ปฏิเสธการอนุญาตเช่นเดียวกันหากมีโปรแกรมอื่นที่ใช้ไฟล์บางไฟล์ที่คุณใช้ (หรือpip install) พยายามเข้าถึง นี่เป็น "คุณลักษณะ" ที่โง่มากของ Windows ที่ปรากฏขึ้นหลายครั้งเช่นเมื่อพยายามย้ายไฟล์บางไฟล์

นอกจากนี้ฉันไม่รู้ว่าจะทราบได้อย่างไรว่าโปรแกรมใดล็อกไฟล์ใดไฟล์หนึ่งดังนั้นสิ่งที่ง่ายที่สุดในการทำคือการรีบูตและทำการติดตั้งก่อนที่จะเริ่มสิ่งใดโดยเฉพาะอย่างยิ่งก่อนที่จะรันเช่น Spyder หรือซอฟต์แวร์ที่ใช้ Python อื่น ๆ นอกจากนี้คุณยังสามารถลองปิดโปรแกรมทั้งหมดได้ แต่อาจเป็นเรื่องยากที่จะทราบว่าโปรแกรมใดมีไฟล์อยู่ สำหรับไดเร็กทอรีเช่นคุณมีหน้าต่าง Explorer เปิดอยู่ที่ไดเร็กทอรีนั้นก็เพียงพอแล้ว


ใช่เคล็ดลับสำหรับฉัน! ฉันทำงานใน Git Bash, Pycharm Terminal และ Windows Terminal พร้อมกันหลังจากปิดสองในสามทุกอย่างทำงานได้
Cappo

10

เปิด cmd ด้วย "เรียกใช้ในฐานะผู้ดูแลระบบ" pip install mitmproxyและดำเนินการคำสั่ง มันจะติดตั้ง


10

เนื่องจากฉันกำลังติดตั้งผ่าน anaconda Prompt ในกรณีของฉันมันใช้ไม่ได้กับpython -m pip installจากนั้นฉันเพิ่มสิ่งนี้

python -m pip install <package_name> --user

มันใช้ได้กับฉัน

ชอบ: python -m pip install "numpy-1.15.4+mkl-cp36-cp36m-win_amd64.whl" --user

โปรดทราบว่าไม่จำเป็นต้องมีเครื่องหมายคำพูดคู่คุณสามารถตั้งชื่อแพ็คเกจที่คุณต้องการติดตั้งได้

คุณควรลองเรียกใช้ Command Prompt as Run as Administratorแล้วลองติดตั้ง pip มันควรจะทำงานอย่างใดอย่างหนึ่ง


สิ่งนี้ได้ผลสำหรับฉันในการติดตั้งแพ็คเกจ python (ในกรณีนี้คือความเห็นอกเห็นใจ) ที่โรงเรียน ขอบคุณ!
JDG

ทางออกที่ดีที่สุดเมื่อคุณไม่มีสิทธิ์ระดับผู้ดูแลระบบของคุณ
Ajay Sharma

5

พยายามให้สิทธิ์ในการควบคุมโฟลเดอร์ python ทั้งหมด

ค้นหาไดเร็กทอรีรากของ python -> คลิกปุ่มขวา -> คุณสมบัติ -> ความปลอดภัย -> แก้ไข -> ให้ผู้ใช้ควบคุมทั้งหมด -> ใช่และรอให้กระบวนการเสร็จสิ้น

มันใช้ได้กับฉัน


3

ลองลบโฟลเดอร์c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6uด้วยตนเองแล้วลองคำสั่ง pip อีกครั้ง


ขอบคุณสำหรับสิ่งนี้. ไฟล์ pip ชั่วคราวบางไฟล์บล็อกการติดตั้ง
ค.

3

การเปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบทำงานให้ฉันโดยไม่ต้องใช้ Python executable คลิกขวาที่ทางลัดพร้อมรับคำสั่งแล้วเลือก "Run as Administrator" จากนั้นรันคำสั่งต่อไปนี้

pip install Django

เหมือนกันสำหรับฉัน - เพียงแค่ต้องเรียกใช้ cmd ในฐานะผู้ดูแลระบบ
Charidimos

3

สาเหตุในกรณีของฉันคือเปิดสมุดบันทึก jupyter ซึ่งกำลังนำเข้าไลบรารีที่เกี่ยวข้อง สาเหตุที่แท้จริงดูเหมือนจะเป็นข้อผิดพลาดของ windows เนื่องจากไฟล์กำลังเปิด / ใช้งานอยู่ (ดูคำตอบของ @ Robert และคำแนะนำในการรีบูต)

ดังนั้นสิ่งที่ต้องตรวจสอบอีกอย่างก็คือไม่มีกระบวนการ python อื่น ๆ กำลังทำงานอยู่

สำหรับฉันการปิดเซิร์ฟเวอร์โน้ตบุ๊กช่วยแก้ปัญหาได้


2
  1. เปิด Command Prompt ในฐานะผู้ดูแลระบบ

  2. ในการติดตั้ง Python Package ให้ใช้คำสั่งนี้รวมถึง--user.

pip install --ignore-installed --upgrade --user <packagename>


1

เมื่อทุกอย่างล้มเหลวให้ลองเลิกใช้ IDE ของคุณ ฉันมีหลายกรณีที่ PyCharm ก่อให้เกิดสิ่งนี้ ทันทีที่ฉันออกจาก PyCharm ในที่สุดฉันก็สามารถติดตั้งแพ็คเกจจากบรรทัดคำสั่งได้ หรือคุณยังสามารถติดตั้งผ่าน PyCharm ตัวเองในการตั้งค่า -> โครงการ: xxx -> โครงการล่าม +->


1
ฉันมีปัญหาเดียวกันจนกระทั่งฉันปิด Spyder
atm

0

เรียกใช้ cmd.exe ในฐานะผู้ดูแลระบบจากนั้นพิมพ์:

python -m pip install

0

ฉันพบปัญหาที่คล้ายกัน แต่รายงานข้อผิดพลาดเป็นเรื่องเกี่ยวกับ

[SSL: TLSV1_ALERT_ACCESS_DENIED] tlsv1 alert access denied (_ssl.c:777)

ก่อนอื่นฉันลองใช้https://python-forum.io/Thread-All-pip-install-attempts-are-met-with-SSL-error#pid_28035แต่ดูเหมือนว่าจะไม่สามารถแก้ปัญหาของฉันได้และยังคงทำซ้ำ ปัญหาเดียวกัน.

และประการที่สองถ้าคุณทำงานกับคอมพิวเตอร์ธุรกิจโดยทั่วไปอาจมีตัวกรองเนื้อหาเว็บ (แต่ฉันสามารถเข้าถึง https://pypi.python.orgผ่านเบราว์เซอร์ได้โดยตรง) และแก้ไขปัญหานี้โดยการเพิ่มพร็อกซีเซิร์ฟเวอร์

สำหรับ Windows ให้เปิดInternet propertiesผ่าน IE หรือ Chrome หรืออะไรก็ได้จากนั้นตั้งค่าที่อยู่และพอร์ตพร็อกซีที่ถูกต้องและวิธีนี้จะช่วยแก้ปัญหาของฉัน

หรือเพียงแค่เพิ่มตัวเลือกpip --proxy [proxy-address]:port install mitmproxyแต่คุณต้องเพิ่มตัวเลือกนี้เสมอในขณะที่ติดตั้งโดย pypi

สองวิธีข้างต้นเป็นทางเลือกที่คุณต้องการ


0

ในกรณีของฉันมันใช้ไม่ได้กับ python -m pip install

สิ่งที่ฉันทำคือจาก cmd ในฐานะผู้ดูแลระบบ:

PsExec.exe -i -s -d cmd.exe

เพื่อที่จะวางไข่ระบบ cmd แล้ว pip install mitmproxy

;)


-1

เพียงแค่ปิดไฟล์ python ทั้งหมดที่เปิด และพยายามเรียกใช้ในฐานะผู้ดูแลระบบ มันจะทำงาน.

เช่น

pip install numpy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.