pip ถูกกำหนดค่าด้วยตำแหน่งที่ต้องการ TLS / SSL อย่างไรก็ตามโมดูล ssl ใน Python ไม่สามารถใช้ได้


214

ฉันใช้ Python3.6 เมื่อฉันพยายามติดตั้ง "modules" โดยใช้pip3ฉันกำลังเผชิญกับปัญหาที่กล่าวถึงด้านล่าง "pip ได้รับการกำหนดค่าด้วยตำแหน่งที่ต้องใช้ TLS / SSL แต่โมดูล ssl ใน Python ไม่พร้อมใช้งาน"


1
ระบบปฏิบัติการ?
ZiTAL

1
ถ้าเป็น os x: stackoverflow.com/questions/35280956//
ZiTAL

1
ระบบปฏิบัติการคือ oracle linux 7.x
Santosh Kumar G

1
คุณติดตั้ง pip จากผู้จัดการแพ็คเกจหรือไม่? หากคุณติดตั้งคอมไพล์ก่อนอื่นให้ติดตั้งlibssl-devหรือติดตั้ง ssl จาก pip pip install ssl stackoverflow.com/questions/41098252/ …
ZiTAL

37
@ZiTAL pipไม่ทำงาน becuse ของsslและคุณขอให้ติดตั้งsslด้วย pip :)
Ramazan Polat

คำตอบ:


190

สำหรับ Windows 10 ถ้าคุณต้องการใช้ pip ใน cmd ปกติไม่เพียง แต่ใน Anaconda prompt คุณต้องเพิ่ม 3 เส้นทางของสภาพแวดล้อม ชอบดังต่อไปนี้:

D:\Anaconda3; 
D:\Anaconda3\Scripts; 
D:\Anaconda3\Library\bin 

คนส่วนใหญ่เพิ่มเฉพาะ D: \ Anaconda3 \ Scripts;


1
ขอบคุณฉันได้เพิ่ม D: \ Anaconda3 \ Library \ bin และทำงานตามวิธีที่ libssl-1_1-x64.dll อยู่ในโฟลเดอร์นั้น (win10x64, python 3.7)
apet

เมื่อคุณเพิ่มสามสิ่งนี้ในเส้นทางของคุณให้ปิด cmd กลับไปหามันและลองอีกครั้งมันจะทำงานได้
user3568896

คุณหมายถึงอะไรโดยเส้นทางของสภาพแวดล้อม? คุณหมายถึงตัวแปร PATH สภาพแวดล้อมหรือไม่ รวมทั้งฉันไม่ได้มีโฟลเดอร์เหล่านั้นในไดรฟ์ D ของพวกเขาพวกเขาควรจะถูกสร้างขึ้นเมื่อฉันติดตั้ง Anaconda?
Amit Raz

สำหรับ windows 8.1
Antoine

1
สิ่งนี้ไม่ทำงานหากไม่มีใครใช้ Anaconda ฉันเคยประสบปัญหานี้กับการติดตั้ง OSGeo4W64 และ QGIS 3.10.2 เพิ่มสิ่งที่ผมรวบรวมเป็นเส้นทางที่ถูกต้องให้กับตัวแปรเส้นทางไม่สามารถแก้ไขปัญหา (เช่น: C:\Program Files\QGIS 3.10\apps\Python37\Scripts)
CNIDog

184

MAC OS

ฉันมีปัญหาเดียวกันบน Mac OS (ซ้อม) และแก้ปัญหาดังกล่าวที่ลิงค์นี้ - ปัญหา OpenSSL

  1. หากคุณไม่มี Homebrew หรือไม่รู้ว่าเป็น Homebrew:

    / usr / bin / ruby ​​-e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"

  2. หรือถ้าคุณได้ติดตั้ง Homebrew แล้ว:

brew update && brew upgrade
brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

อัปเดต: โปรดทราบว่าฉันต้องใช้การ--ignore-dependenciesตั้งค่าสถานะเนื่องจากแพคเกจอื่น ๆ ที่ติดตั้งที่ขึ้นอยู่กับ OpenSSL

เพิ่มเติมหากปัญหาเกิดขึ้นหลังจากใช้pyenvคุณสามารถแก้ไขได้โดยใช้:

brew reinstall python

5
หลังจากติดตั้งPython เวอร์ชั่นอื่นแล้ว pip เสีย โซลูชันนี้ช่วยฉันซ่อมแซม
iMitwe

15
ทำไมgithub.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rbจึงถูกเพิ่มเข้ามาในฐานะผู้อ้างอิง? :) ฉันคิดว่าควรลบออกเนื่องจากไม่เกี่ยวข้องโดยสิ้นเชิงและอาจไม่ปลอดภัย
Mark

1
ฉันเข้าใจว่าอาจเป็นความเสี่ยงด้านความปลอดภัย แต่ผู้ใช้ทุกคนได้ขอให้ใช้แพ็คเกจผ่านลิงก์แพคเกจอย่างเป็นทางการ - github.com/kelaberetiv/TagUI/issues/635
Vaulstein

1
@Vaulstein ตอนนี้คุณพูดถึงมันแล้ว ฉันคิดว่าฉันติดตั้งแพคเกจบางอย่างด้วยการชงเช่นกันก่อนที่จะแตก gpgมันเป็น
ติดยาเสพติด

3
หลังจากอัพเกรดจากMojaveเป็นCatalinaฉันก็กดปุ่มนี้ ฉันแค่ต้องการbrew update && brew upgradeให้มันทำงานอีกครั้ง ขอบคุณสำหรับคำแนะนำ!
rustyMagnet

35

สำหรับผู้ใช้ Debian อาจใช้งานต่อไปนี้:

sudo -s

apt install libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev libtk8.5 libgdm-dev libdb4o-cil-dev libpcap-dev

จากนั้น cd ไปยังโฟลเดอร์ที่มีซอร์สโค้ดไลบรารี Python 3.X และรัน

./configure
make
make install

@ MehmetKurtipek ฉันแก้ไขคำตอบเพื่อชี้แจงขั้นตอน หากสิ่งนี้ยังคงช่วยไม่ได้โปรดอธิบายปัญหาของคุณ
Rafael B

5
ปรากฎว่า Python3.7 มีปัญหาที่ดีพร้อมกับ Ubuntu 14.04 ขึ้นไป แพคเกจ SSL ที่ต้องการขั้นต่ำสำหรับ Python3.7 เข้ากันไม่ได้กับ ubuntus เก่า ขอบคุณสำหรับการแก้ไข :)
Mehmet Kurtipek

@MehmetKurtipek เซิร์ฟเวอร์ของฉันคือ 1404 ดังนั้นไพ ธ อนรุ่นล่าสุดที่ไม่มีปัญหานี้คืออะไร ฉันมี python 3.7.4 มีปัญหาเดียวกัน ...
ข้อเสนอไม่สามารถปฏิเสธ

@ MehmetKurtipek คุณแก้ปัญหาโดยไม่ต้องอัพเกรดระบบหรือไม่? ฉันกำลังทำงานกับ 14.04
ข้อเสนอไม่สามารถปฏิเสธ

ใช้ mint19 และ python 3.8 ปัญหาของฉันนี้แก้ไขได้
5uperdan

21

สำหรับผู้ใช้ Oracle Linux ในอนาคตที่พยายามแก้ไขปัญหานี้ด้านล่างเป็นสิ่งที่ใช้ได้ผลสำหรับฉัน การติดตั้ง libs ที่ขาดหายไปครั้งแรก:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel 
readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

จากนั้นไปที่ cd Python3.X library ของคุณแล้วรัน

make
make install 

1
คำตอบนี้แก้ปัญหาได้ดีใน CentOS ของฉัน 7
สูงสุด

ห้องสมุดเหล่านี้คืออะไร? ทำไมพวกเขาต้องการ?
Mohit Motwani

การทำการเชื่อมต่อที่ปลอดภัยผ่านทางอินเทอร์เน็ตจำเป็นต้องใช้สิ่งนี้ - เช่นเมื่อคุณเรียกใช้ 'pip install'
limboy


20

สำหรับ centos 7:

ติดตั้ง openssl:

sudo yum install openssl-devel

ตอนนี้ไปที่ไดเรกทอรี python ของ goto

เรียกใช้คำสั่งด้านล่าง

sudo ./configure
sudo make
sudo make install

สิ่งนี้จะแก้ไขปัญหาในหน่วย Centos ...


10

สำหรับ Windows 10, windows 7 หากการติดตั้ง pip ไม่ทำงานบนพรอมต์ CMD ให้รันโดยใช้พรอมต์ Anaconda - ใช้งานได้

https://github.com/pypa/virtualenv/issues/1139


6
ฉันรู้คำตอบที่ถูกต้องหากคุณต้องการใช้ pip ใน cmd ปกติไม่ใช่ Anaconda prompt คุณต้องเพิ่ม 3 เส้นทางของสภาพแวดล้อม: เช่นนี้: D: \ Anaconda3; D: \ Anaconda3 \ Scripts; D: \ Anaconda3 \ Library \ bin ตอนนี้เป็นสคริปต์เท่านั้น!
无名小路

7

ในกรณีที่คุณpyenvติดตั้งไพ ธ อนซึ่งติดตั้ง pyenv กับ homebrew บน macOS ฉันอาจมีเวอร์ชั่นใหม่กว่าซึ่งแก้ไขได้:

$ brew update && brew upgrade pyenv

จากนั้นติดตั้งเวอร์ชันใหม่ของหลาม:

$ pyenv install 3.7.2
pyenv: /Users/luckydonald/.pyenv/versions/3.7.2 already exists
continue with installation? (y/N) 

หมายเหตุมันค่อนข้างสกปรกที่จะเขียนทับการติดตั้งไพ ธ อนที่มีอยู่เช่นนั้น แต่ในกรณีของฉันมันได้ผล


5

สำหรับ OpenSUSE ในลักษณะเดียวกัน แต่มีการเปลี่ยนแปลงเล็กน้อยของรายการด้านบน:

zypper install zlib-devel libopenssl-devel ncurses-devel sqlite3-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel

จากนั้นcdไปยังแหล่ง Python dir และ

make
make install

หรือ

make
make altinstall

และบางที

ln -s /usr/local/lib64/python3.6/lib-dynload/ /usr/local/lib/python3.6/lib-dynload

ควรดำเนินการสำหรับผู้ใช้ OpenSUSE ดูการติดตั้ง Python 3.7 ที่ไม่ทำงานบน openSUSE Leap 42.3



4

ทำงานให้ฉัน

apt-get install libssl-dev

ใช้สิ่งนี้เพื่อเปิดใช้งาน ssl สำหรับ pip แจ้งให้เราทราบหากมีคนพบปัญหา


4

คล้ายกับวิธีแก้ปัญหาข้างต้นติดตั้งเวอร์ชั่นใหม่ของไพ ธ อนด้วย pyenv

อย่างใดฉันอัพเกรดของฉันopensslซึ่งทำลายงูหลามรุ่น pyenv

pyenv install 3.6.8
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
...

บรรทัดแรกบอกว่ามันอาศัย homesl openssl


3

ฉันพบปัญหานี้ด้วย Visual Studio Code การติดตั้ง pylint จากการแจ้งเตือน VS Code ฉันสามารถเอาชนะปัญหานี้ได้ด้วยการเปิดไดเรกทอรีการติดตั้ง Anaconda และเรียกใช้

pip install pylint

จากนั้นรหัส VS ก็มีความสุข แต่นั่นก็ไม่ได้แก้ไขปัญหาขณะทำงาน

& C:/Users/happy/Anaconda3/python.exe -m pip install -U pylint

ค่อนข้างมากทำให้เกิดข้อผิดพลาดเดียวกันดังนั้นจึงดูเหมือนว่า VS Code ไม่สามารถเข้าถึงโมดูลหลามได้

โปรดทราบว่า VS Code เลือกไพ ธ อนตัวแรกที่เห็นเมื่อติดตั้งด้านล่างซ้ายของหน้าจอจะระบุว่าใช้ env ใด คลิกที่พื้นที่นั้นเพื่อกำหนดสภาพแวดล้อม ดังนั้นแม้ว่าคุณจะทำการติดตั้ง pip สำหรับสภาพแวดล้อม VS Code ก็อาจจะดูที่อื่น

วิธีที่ดีที่สุดคือตรวจสอบให้แน่ใจว่ารหัส VS มีสภาพแวดล้อมแบบหลามที่ถูกต้องและสภาพแวดล้อมเดียวกันนั้นอยู่ในเส้นทางของระบบ (ภายใต้คุณสมบัติของระบบ -> ขั้นสูง -> ตัวแปรทางสิ่งแวดล้อม)

ภายใต้ Path Variable แก้ไขและเรียกดูไดเรกทอรี Anaconda เฉพาะที่คุณต้องการให้ VSCode ใช้และเพิ่มใน PATH ฉันต้องเพิ่มต่อไปนี้:

C:\Users\happy\Anaconda3\
C:\Users\happy\Anaconda3\Scripts\
C:\Users\happy\Anaconda3\Library\bin\
C:\Users\happy\Anaconda3\Library\mingw-w64\bin\

ไดเรกทอรีการติดตั้ง Anaconda ของคุณอาจแตกต่างกัน สิ่งที่ควรทราบคือ Windows ไม่มีตัวแปร PATH จะมีผลจนกว่าคุณจะรีสตาร์ทเครื่อง ในกรณีนี้ให้ปิดและเปิดรหัสอีกครั้ง หากใช้ Terminal หรือ PS Shell ให้ปิดและเปิดใหม่และตรวจสอบ Path เพื่อให้แน่ใจว่ารวมอยู่ด้วย


3

ฉันใช้ Windows 10 และติดตั้ง Miniconda 3 กับ Python 3.7

ฉันแก้ไขข้อผิดพลาดโดยทำตามhttps://github.com/conda/conda/issues/8273

โดยเฉพาะฉันคัดลอกไฟล์ต่อไปนี้จากC:\Users\MyUser\Miniconda3\Library\binไปที่C:\Users\MyUser\Miniconda3\DLLs:

  • libcrypto-1_1-x64.dll
  • libcrypto-1_1-x64.pdb
  • libssl-1_1-x64.dll
  • libssl-1_1-x64.pdb


2

หากคุณไม่มี Chocolatey ให้ติดตั้งจากที่นี่: https://chocolatey.org/docs/installation

คุณสามารถคัดลอกวางบรรทัดคำสั่งหนึ่งซับและดำเนินการจากพรอมต์คำสั่งที่มีสิทธิ์ยกระดับ

ติดตั้งงูใหญ่โดยใช้บรรทัดคำสั่ง:

choco install anaconda3

ตั้งค่าตัวแปรสภาพแวดล้อม:

set PATH=C:\tools\Anaconda3\Scripts;C:\tools\Anaconda3;C:\tools\Anaconda3\Library\bin;%PATH%

จากนั้นเรียกใช้คำสั่งที่ล้มเหลว ในกรณีของฉันมันเป็น:

pip install conan

อนาคอนด้าใช้การติดตั้งไพ ธ อนแบบแยกส่วนและพิพยังเป็นแบบเจาะจงด้วย


1

ดังที่ Tokci กล่าวว่าใช้งานได้กับ Windows 7

"ใช้เมาส์ไปที่ไอคอน Windows (ซ้ายล่าง) แล้วเริ่มพิมพ์" Anaconda "ควรมีรายการที่ตรงกันปรากฏขึ้นเลือก" Anaconda Prompt "หน้าต่างคำสั่งใหม่ที่ชื่อว่า" Anaconda Prompt "จะเปิดขึ้น"

จากนั้น pip ก็ใช้งานได้

ต่อไปนี้ช่วยในการนำเข้า xgboost: https://www.youtube.com/watch?v=05djBSOs1FA


กำลังมองหาลินุกซ์ที่เทียบเท่า ... แต่อย่างไรก็ตามทำไมงานนี้และการใช้ pip จากบรรทัดคำสั่งจะไม่เกิดขึ้น? สิ่งนี้จะสมเหตุสมผลถ้าคุณสร้างงูใหญ่ของงูใหญ่ด้วย SSL ไว้ล่วงหน้าในบางจุด
matanster

ฉันไม่รู้เลยว่าทำไม แต่สิ่งที่คุณพูดฟังดูสมเหตุสมผล
Ayan Omarov

1

หากมีใครใช้ Arch Linux OS ฉันจะแก้ไขปัญหา TLS / SSL ด้วยการทำสิ่งนี้:

sudo pacman -S openssl

จากนั้นฉันสามารถใช้ pip เพื่อติดตั้งแพ็คเกจที่ฉันต้องการ:

pip install openpyxl

1

ไปที่พรอมต์อนาคอนดาและพิมพ์ (ถ้าคุณติดตั้ง python 3.x ในเอนจิ้นของคุณ):

py -m pip install pymysql 

ฉันมีปัญหาเดียวกันและสิ่งนี้สามารถแก้ไขปัญหาของฉันได้ ในภายหลังหลังจากทำสิ่งนี้คุณสามารถนำเข้า pymysql ใน power shell หรือพรอมต์อื่น ๆ


1

พบปัญหานี้ขณะติดตั้ง python 3.8 จากซอร์สบน Ubuntu ขั้นตอนที่จำเป็นในการติดตั้งเสร็จสมบูรณ์พร้อมกับ python 3.7 ที่เป็นค่าเริ่มต้นสรุปไว้ด้านล่าง:

sudo apt -y install libssl-dev zlib1g-dev build-essential

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar -xf Python-3.8.0.tgz
cd Python-3.8.0/

./configure --enable-optimizations
make
sudo make altinstall

คำแนะนำในการติดตั้งสำหรับzlib1g-devและbuild-essentialนั้นซ้ำซ้อนเนื่องจากเดสก์ท็อป Ubuntu มีสิ่งเหล่านี้อยู่แล้ว แต่จำเป็นสำหรับอินสแตนซ์ EC2 ของ Amazon บางตัว python 3.8.0 เป็นรีลีสปัจจุบันเพียงแค่ตอนนี้ แต่ควรแทนที่ด้วยเวอร์ชั่นล่าสุดที่มีอยู่

คำแนะนำเหล่านี้ดีที่สุดสำหรับการรักษา python 3.7 เป็นค่าเริ่มต้นสำหรับ python3 และใช้ python 3.8 ในสภาพแวดล้อมเสมือน


1

ปัญหานี้เกิดจากแพ็คเกจ OpenSSL ขาดหายไปบนพีซีของคุณ

หาก pip install openpyxlยังให้ข้อผิดพลาด

คุณสามารถแก้ไขได้โดยติดตั้ง OpenSSL (Win64 OpenSSL v1.1.1g) จากเว็บไซต์ด้านล่าง:

slproweb.com/products/Win32OpenSSL.html

รีสตาร์ท IDE ที่คุณใช้เพื่อให้การเปลี่ยนแปลงมีผล


0

ฉันพบปัญหานี้! ฉันติดตั้ง Miniconda3 รุ่น 32 บิตโดยไม่ได้ตั้งใจ ตรวจสอบให้แน่ใจว่าคุณเลือกเวอร์ชัน 64 บิต!


0

สิ่งนี้ใช้ได้กับฉัน:

yum install python36-pyOpenSSL 

รุ่นหลามและแพ็คเกจผู้จัดการอาจแตกต่างกัน


0

ฉันเหนื่อย:

python -m pip install --upgrade pip

และหลังจากนั้นมันใช้งานได้ดีสำหรับฉันใน Windows 10


0

แก้ไขสิ่งนี้โดยไม่ต้องเปลี่ยนอะไรที่เกี่ยวข้องกับ TSL / SSL

ฉันพยายามดูว่ามีสิ่งเดียวกันเกิดขึ้นpipไหมและเห็นว่าpipมันพัง ทำการขุดและรับรู้ว่าอาจเกิดจากการลบ Homebrew python@2เมื่อวันที่ 1 กุมภาพันธ์ 2020

กำลังรันbrew uninstall python@2เพื่อลบ python2 ที่ติดตั้งโดย Homebrew

ทำลาย env เสมือนที่สร้างโดยใช้python3และสร้างใหม่
pip3การติดตั้งทำงานได้ดีอีกครั้ง


3
สำหรับฉันแล้วเปลี่ยนเป็นเวอร์ชั่นเก่ากว่าopenssl: brew switch openssl 1.0.2t ฉันใช้ Mac OS Catalina 10.15.3 หวังว่ามันจะช่วย
viraj.kulkarni


-1

นี่เป็นปัญหากับการตั้งค่า ssl เริ่มต้นของคุณ คุณต้องดาวน์โหลดPython3และเพิ่มเส้นทางไปยังระบบของคุณ หากคุณใช้ Pycharm ให้ตั้งล่ามเป็นเส้นทาง python3 ของคุณ จากนั้นคุณสามารถใช้ pip3 ได้โดยไม่มีข้อผิดพลาด


-1

ปัญหาอาจมาจากรุ่นแพคเกจ openssl ที่ติดตั้งของคุณ เป็นกรณีสำหรับฉันและฉันแก้ไขปัญหานี้เพียงแค่อัปเกรด ฉันใช้ Mac OS โดยใช้ brew:

brew upgrade openssl

หากคุณติดตั้ง python ด้วย brew สิ่งนี้ควรแก้ไขปัญหาโดยตรงเนื่องจาก python ขึ้นอยู่กับ openssl


-1

คุณลองจาก Anaconda Prompt

คุณจะเห็น (ฐาน) ตอนนี้อัพเกรด pip ตัวอย่าง:

(base) C:\Users\Tom>cd ..

(base) C:\Users>cd ..

(base) C:\>python -m pip install --upgrade pip
Requirement already up-to-date: pip in g:\anaconda3\lib\site-packages (20.0.2)

(base) C:\>pip -V
pip 20.0.2 from G:\Anaconda3\lib\site-packages\pip (python 3.7)

# Try install
(base) C:\>pip install selenium

ขั้นตอนนี้ใช้เวลานานกว่า แต่จะติดตั้งหรืออัพเกรดไลบรารี SSL ที่ Anaconda ใช้ภายใน ไปที่นี่ต่อไป


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