“ โมดูล ssl ใน Python ไม่พร้อมใช้งาน” เมื่อติดตั้งแพ็คเกจด้วย pip3


123

ฉันติดตั้ง Python 3.4 และ Python 3.6 บนเครื่องภายในของฉันสำเร็จแล้ว แต่ไม่สามารถติดตั้งแพ็คเกจด้วยpip3ไฟล์.

เมื่อฉันดำเนินการpip3 install <package>ฉันได้รับข้อผิดพลาดที่เกี่ยวข้องกับ SSLดังต่อไปนี้:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting <package>
  Could not fetch URL https://pypi.python.org/simple/<package>/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement <package> (from versions: )
No matching distribution found for <package>

ฉันจะแก้ไขการติดตั้ง Python3.x ของฉันเพื่อให้สามารถติดตั้งแพ็คเกจด้วยได้pip install <package>อย่างไร


4
คุณติดตั้ง pip3 อย่างชัดเจนบน Ubuntu ด้วยคำสั่งหรือsudo apt-get install python3-pipไม่?
Sidahmed

2
โปรดลองpip3 install --upgrade pipดูว่าคุณได้รับข้อความเดียวกันหรือไม่
herry

คำตอบ:


93

คำแนะนำทีละขั้นตอนเพื่อติดตั้ง Python 3.6 และ pip3 ใน Ubuntu

  1. ติดตั้งแพ็คเกจที่จำเป็นสำหรับ Python และ ssl: $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

  2. ดาวน์โหลดและคลายซิป "Python-3.6.8.tar.xz" จากhttps://www.python.org/ftp/python/ลงในโฮมไดเร็กทอรีของคุณ

  3. เปิดเทอร์มินัลในไดเร็กทอรีนั้นและรัน: $ ./configure

  4. สร้างและติดตั้ง: $ sudo make && sudo make install

  5. ติดตั้งแพ็คเกจด้วย: $ pip3 install package_name


4
ทำงานเกี่ยวกับการ "Raspbian GNU / Linux 9 (ยืด)"
Oktay

2
ขอบคุณ! ฉันเดินไปรอบ ๆ เพื่อให้ python3 ทำงานบน Ubuntu 14.04 จนกระทั่งฉันพบรายการคำสั่งนี้
jerrylogansquare

2
ผู้ช่วย Ubuntu ของฉัน
markroxor

6
สิ่งนี้ได้ผลสำหรับฉัน ขอบคุณมาก. มีสิ่งหนึ่งที่ฉันไม่สามารถคาดเดาได้ทำไมไม่เริ่มด้วยขั้นตอนที่ 4 และ "make; make install" เพียงครั้งเดียว
Paraphiliac Ostrich

1
ทำงานใน Ubuntu Beaver ผมใช้ python3.7 และ pip 19 เสมอกับปัญหา SSL .....
eduardosufan

62

หากคุณใช้ Red Hat / CentOS:

# To allow for building python ssl libs
yum install openssl-devel
# Download the source of *any* python version
cd /usr/src
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
tar xf Python-3.6.2.tar.xz 
cd Python-3.6.2

# Configure the build w/ your installed libraries
./configure

# Install into /usr/local/bin/python3.6, don't overwrite global python bin
make altinstall

ทำงานสำหรับ python 2.7 เช่นกัน เพียงแค่เพิ่มยี่ห้อและติดตั้ง altinstall
Jabda

หากคุณต้องการ Virtualenv คุณต้องรัน sudo /usr/local/bin/pip3.7 ติดตั้ง Virtualenv ขอบคุณสำหรับคำตอบนี้!
เท

ยอดเยี่ยมฉันมีปัญหาในการติดตั้ง python 2.7.13 สำหรับอิมเมจนักเทียบท่าเดิมและจำเป็นต้องopenssl-develเรียกใช้python2.7 get-pip.py
Felipe

59

หากคุณใช้ Windows และใช้ anacondaสิ่งนี้ใช้ได้กับฉัน:

ฉันลองใช้วิธีแก้ปัญหาอื่น ๆ มากมายที่ไม่ได้ผล (การเปลี่ยนแปลงของ Environment PATH Variable ... )

ปัญหาอาจเกิดจาก DLL ในโฟลเดอร์ Windows \ System32 (เช่น libcrypto-1_1-x64.dll หรือ libssl-1_1-x64.dll หรืออื่น ๆ ) ที่ซอฟต์แวร์อื่นวางไว้ที่นั่น

การแก้ไขกำลังติดตั้ง openSSL จากhttps://slproweb.com/products/Win32OpenSSL.htmlซึ่งแทนที่ dlls ด้วยเวอร์ชันล่าสุด


2
ฉันเพิ่งติดตั้งมัน ในรายการโปรแกรมที่ติดตั้งในระบบของฉันฉันมี OpenSSL สามเวอร์ชัน (สองเวอร์ชัน 64 บิตและเวอร์ชัน 32 บิตหนึ่งเวอร์ชันแม้ว่าฉันจะใช้ระบบ 64 บิตก็ตาม) ฉันไม่ทราบว่าได้ติดตั้งทั้งหมดแล้วจึงทิ้งไว้ที่นั่น
juergi

1
นี่เป็นวิธีแก้ปัญหาที่ตรงไปตรงมาที่สุดที่ฉันพบหลังจากค้นหามามาก Pip ไม่ทำงานเนื่องจากข้อผิดพลาด OpenSSL นอกจากนี้ Spyder ยังขัดข้องเมื่อเปิดตัวเนื่องจากข้อผิดพลาด "ไม่สามารถนำเข้าชื่อ 'HTTPSHandler' จาก 'urllib.request' นี่แยกเป็น windows 10 python 3 สำหรับฉัน การแสดงความคิดเห็นเพื่อหวังว่าจะช่วยเชื่อมโยงโซลูชันสำหรับผู้ใช้ Googling ผลลัพธ์อันดับต้น ๆ ส่วนใหญ่เป็นโซลูชันเก่าและซับซ้อน
Dick McManus

8
หากคุณใช้ Windows และใช้ Anaconda ให้ใช้ Anaconda Prompt แทน cmd เพื่อเรียกใช้ "pip install" ไม่จำเป็นต้องมีการเปลี่ยนแปลง DLL / SSL เพิ่มเติม
FatihAkici

1
@FatihAkici - ขอบคุณมาก มันช่วยฉัน
Raju Penumatsa

2
ฉันกำลังจะทำคอมพิวเตอร์พังใช้ pycharm กับเครื่องและระบบปฏิบัติการหลายเครื่อง แต่ใน windows ใหม่นี้ฉันติดตั้ง anaconda และดูเหมือนว่ามันจะพัง ฉันท่องเว็บประมาณ 2 ชั่วโมงขอบคุณเพื่อนมาก <3
Benoit F

37

ฉันมีปัญหาคล้ายกันบน OSX 10.11 เนื่องจากการติดตั้ง memcached ซึ่งติดตั้ง python 3.7 ที่ด้านบนของ 3.6

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

ใช้เวลาหลายชั่วโมงในการยกเลิกการลิงก์ openssl ติดตั้งใหม่เปลี่ยนเส้นทาง .. และไม่มีอะไรช่วย การเปลี่ยนเวอร์ชัน openssl กลับจากเป็นเวอร์ชันเก่าทำได้เคล็ดลับ:

brew switch openssl 1.0.2e

ฉันไม่เห็นคำแนะนำนี้ในอินเทอร์เน็ต หวังว่าจะให้บริการใครบางคน


3
ฉันมีปัญหาเดียวกันกับ MacOS Catalina 10.5.4 (Beta) ตอนนี้ใช้งานได้แล้ว ขอบคุณ!
Peter Rosemann

14
brew switch openssl 1.0.2sสำหรับฉันมันเป็น แต่นั่นมัน คุณช่วยฉันแล้วขอบคุณ!
อันโตนิโอ

3
ลองสิ่งนี้ แต่มันบอกฉันว่า openssl ไม่มีเวอร์ชัน "1.0.2e" ใน Cellar openssl ไม่มีเวอร์ชัน "1.0.2s" ใน Cellar
James Parker

Antonio, James: รุ่นเก่า ๆ ที่คุณมี My Cellar มี 1.0.2e ดังนั้นฉันจึงใช้สิ่งนี้ ฉันดีใจที่ช่วยได้
dsomnus

4
ขอบคุณมาก! สำหรับฉันวิธีแก้ปัญหาของคุณในการเปลี่ยนไปใช้เวอร์ชันเก่าopenssl: brew switch openssl 1.0.2t ฉันใช้ Mac OS Catalina 10.15.3 หวังว่าจะช่วยได้
viraj.kulkarni

25

เห็นด้วยกับคำตอบของ mastaBlasta ทำงานให้ฉัน ฉันพบปัญหาเดียวกันกับคำอธิบายหัวข้อ

สภาพแวดล้อม: MacOS Sierra และฉันใช้ Homebrew

วิธีแก้ปัญหาของฉัน:

  1. ติดตั้ง openssl อีกครั้งโดย brew uninstall openssl; brew install openssl
  2. ตามคำแนะนำที่ Homebrew กำหนดให้ทำดังต่อไปนี้:

    echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
    export LDFLAGS="-L/usr/local/opt/openssl/lib"
    export CPPFLAGS="-I/usr/local/opt/openssl/include"

3
brew uninstall openssl, brew install opensslขอบคุณเคล็ดลับคือ ฉันลองแล้วbrew reinstall opensslก็ไม่มีผล แต่การถอนการติดตั้ง / ติดตั้งใช้งานได้!
Jeff Tian

6
ต้องวิ่งbrew uninstall --ignore-dependencies openssl
elad silver

16

ใน Ubuntu สิ่งนี้สามารถช่วยได้:

cd Python-3.6.2
./configure --with-ssl
make
sudo make install

4
ทำไมเราต้องสร้าง python จาก source เพื่อสิ่งนี้? ไม่มีวิธีแก้ปัญหาที่ใช้ได้กับการแจกแจง python มาตรฐานหรือไม่? ฉันหวังว่าอย่างไร้เดียงสาที่จะเพิ่มโมดูลนี้จะเป็นไปได้โดยไม่ต้องลบล้างไบนารี python ซึ่งเราไม่เคยรู้ตำแหน่งซอร์สที่เกี่ยวข้องเสมอไปบนระบบสดที่ไม่ได้ติดตั้งใหม่
matanster

พยายามแล้วไม่เปลี่ยนแปลงอะไรเลย
หมายเลขผู้ใช้

10
ฉันได้รับคำเตือนว่าไม่รู้จักตัวเลือกนี้
ma3oun

ฉันต้องต่อท้าย 'sudo' หลายคำสั่ง แต่มันใช้งานได้โดยที่คำตอบอื่นล้มเหลว!
Paco Abato


5

ปัญหาอาจเกิดจากไลบรารีหายไป

ก่อนที่คุณจะติดตั้ง python 3.6 ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารีทั้งหมดที่จำเป็นสำหรับ python

$ sudo apt-get install build-essential checkinstall 
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

ข้อมูลเพิ่มเติมในวิธีติดตั้ง Python 3.6.0 บน Ubuntu และ LinuxMint


5

หากคุณใช้ OSX และรวบรวม python จากแหล่งที่มา:

ติดตั้ง openssl โดยใช้ brew brew install openssl

ให้แน่ใจว่าจะปฏิบัติตามคำแนะนำชงช่วยให้คุณเกี่ยวกับการตั้งของคุณและCPPFLAGS LDFLAGSในกรณีของฉันฉันใช้openssl@1.1สูตรชงและฉันต้องการการตั้งค่า 3 อย่างนี้เพื่อให้กระบวนการสร้าง python เชื่อมโยงกับไลบรารี SSL ของฉันอย่างถูกต้อง:

export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

สมมติว่ามีการติดตั้งไลบรารีในตำแหน่งนั้น


ยังคงเป็นปัญหาเดิม
Gaurav Paliwal

ลองติดตั้ง pip ใหม่
mastaBlasta

@GauravPaliwal, @mastaBlasta: สำหรับฉันการเปลี่ยนไปใช้เวอร์ชันเก่ากว่าopenssl: brew switch openssl 1.0.2t ฉันใช้ Mac OS Catalina 10.15.3 หวังว่าจะช่วยได้
viraj.kulkarni

5

ฉันพบปัญหาเดียวกันใน windows 10 ปัญหาเฉพาะของฉันเกิดจากการติดตั้ง Anaconda ฉันติดตั้ง Anaconda และใต้เส้นทางPath/to/Anaconda3/มีไฟล์python.exe. ดังนั้นฉันไม่ได้ติดตั้ง python เลยเพราะ Anaconda มี python ด้วย เมื่อใช้ pip pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.ในการติดตั้งแพคเกจผมพบว่ารายงานข้อผิดพลาดเดียวกัน

วิธีแก้ปัญหามีดังต่อไปนี้:

1) คุณสามารถดาวน์โหลดหลามอีกครั้งอย่างเป็นทางการในเว็บไซต์ ;

2) ไปที่ไดเร็กทอรีที่"Python 3.7 (64-bit).lnk"ตั้งอยู่

3) import sslและexit()

4) พิมพ์ cmd "Python 3.7 (64-bit).lnk" -m pip install tensorflowเป็นต้น

ที่นี่คุณพร้อมแล้ว


ไม่ใช่การแก้ไข แต่ได้งานทำแน่นอน อย่างน้อยก็ช่วยให้คุณติดตั้ง deps ที่หายไป สิ่งที่ฉันรู้ในเครื่องท้องถิ่นของฉันคือฉันมีรายการที่ขัดแย้งกันในตัวแปร PATH สำหรับ python (เช่น Anaconda 2.7 64-bit และ Python 3.7 32-bit)
AP

นอกจากนี้เพื่อปรับปรุงคำตอบนี้คุณสามารถจัดเก็บพา ธ สัมบูรณ์ในตัวแปรและเรียกใช้เป็น: cmd /c $py .\main.py( Powershell ) หรือcmd /c %py% .\main.py( Dos ) สิ่งนี้จะเรียกใช้ในเชลล์ที่คุณมีอยู่และสามารถเขียนสคริปต์ได้
AP

5

ถ้าคุณอยู่ใน Windows และใช้งูคุณสามารถลองใช้ "จุดติดตั้ง ..." คำสั่งใน Anaconda Prompt แทน cmd.exe เป็น willliu1995 ผู้ใช้แสดงให้เห็นที่นี่ นี่เป็นวิธีแก้ปัญหาที่เร็วที่สุดสำหรับฉันซึ่งไม่ต้องติดตั้งส่วนประกอบเพิ่มเติม


4

ฉันพยายามมากวิธีที่จะแก้ปัญหานี้และไม่มีการแก้ไข ตอนนี้ฉันใช้ Windows 10

สิ่งเดียวที่ได้ผลคือ:

  • ถอนการติดตั้ง Anaconda
  • ถอนการติดตั้ง Python (ฉันใช้เวอร์ชัน 3.7.3)
  • ติดตั้ง Python อีกครั้ง (อย่าลืมตรวจสอบตัวเลือกเพื่อเพิ่มไปยัง PATH โดยอัตโนมัติ)

จากนั้นฉันดาวน์โหลด libs ทั้งหมดที่ฉันต้องการโดยใช้ PIP ... และใช้งานได้!

ไม่รู้ว่าทำไมหรือว่าปัญหาเกี่ยวข้องกับอนาคอนดา


3

สำหรับผู้ใช้ osx brew

ปัญหาของฉันดูเหมือนเกี่ยวข้องกับการติดตั้ง python ของฉันและได้รับการแก้ไขอย่างรวดเร็วโดยการติดตั้ง python3 และ pip ​​อีกครั้ง ฉันคิดว่ามันเริ่มทำงานผิดปกติหลังจากอัปเดต OS แต่ใครจะรู้ (ตอนนี้ฉันใช้ Mac OS 10.14.6)

brew reinstall python3 --force
# setup pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
# installa pkg successfully 
pip install pandas

ขอบคุณสำหรับคำตอบนี้! ในกรณีของปัญหาเริ่มต้นหลังจากการปรับปรุงเพื่อ Catalina (10.15.3) และฉันพบว่าขั้นตอนแรกของคุณbrew reinstall python3 --forceก็เพียงพอที่: ทำงานอีกครั้งหลังจากนั้นผมไม่จำเป็นต้องติดตั้งpip pip
PLL

3

คุณสามารถทำอย่างใดอย่างหนึ่งจากสองอย่างนี้:

  1. ขณะที่ติดตั้งงูใหญ่เลือกตัวเลือกเพื่อเพิ่มงูไปยังเส้นทาง

หรือ

  1. ค้นหาเส้นทาง (สมบูรณ์) เหล่านี้จากโฟลเดอร์การติดตั้ง Anaconda ของคุณและเพิ่มเข้าไปในตัวแปรสภาพแวดล้อม :

\ อนาคอนดา

\ Anaconda \ Library \ mingw-w64 \ bin

\ Anaconda \ Library \ usr \ bin

\ Anaconda \ Library \ bin

\ Anaconda \ Scripts

\ anaconda \ Library

\ anaconda \ condabin

เพิ่มเส้นทางด้านบนไปยังตัวแปรระบบ "Path" และไม่ควรแสดงข้อผิดพลาดอีกต่อไป :)


1
อีกทางเลือกหนึ่งคือการใช้ 'anaconda prompt' เฉพาะซึ่งมีการตั้งค่าตัวแปรสภาพแวดล้อมเหล่านี้อย่างถูกต้อง
Tuula

2

ฉันประสบปัญหาเดียวกันและสามารถแก้ไขได้ด้วยขั้นตอนต่อไปนี้:

sudo yum install -y libffi-devel
sudo yum install openssl-devel
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
sudo tar xf Python-3.7.1.tar.xz
cd Python-3.7.1
sudo ./configure --enable-optimizations
# Install into /usr/local/bin/python3.7, don't overwrite global python bin
sudo make altinstall

ขึ้นอยู่กับ perms คุณอาจไม่จำเป็นต้องใช้ sudo

Results:
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-10.0.1 setuptools-39.0.1

ตอนนี้ควรจะรันได้แล้ว

python3.7 -V 

และ

pip3.7 -V

เมื่อติดตั้งแพ็คเกจ:

pip3.7 install pandas

หรือขึ้นอยู่กับ perms คุณยังสามารถเพิ่มแฟล็ก --user ได้ดังนี้:

pip3.7 install pandas --user

2

sslโมดูลเป็น TLS / SSL เสื้อคลุมสำหรับการเข้าถึงการดำเนินงานระบบไฟฟ้าโซลาร์ (OS) ซ็อกเก็ต ( Lib / ssl.py ) ดังนั้นเมื่อsslโมดูลไม่พร้อมใช้งานโอกาสที่คุณจะไม่ได้ติดตั้งไลบรารี OS OpenSSL หรือไม่พบไลบรารีเหล่านั้นเมื่อคุณติดตั้ง Python สมมติว่าเป็นกรณีต่อไป (aka: คุณได้ติดตั้ง OpenSSL แล้ว แต่เชื่อมโยงไม่ถูกต้องเมื่อติดตั้ง Python)

ฉันจะถือว่าคุณกำลังติดตั้งจากแหล่งที่มา หากคุณกำลังติดตั้งจากไบนารี (เช่นไฟล์ Window .exe) หรือแพ็กเกจ (Mac .dmg หรือ Ubuntu apt) ขั้นตอนการติดตั้งคุณสามารถทำได้ไม่มากนัก

ในระหว่างขั้นตอนการกำหนดค่าการติดตั้ง python คุณต้องระบุตำแหน่งที่จะใช้ OS OpenSSL สำหรับการเชื่อมโยง:

# python 3.8 beta
./configure --with-openssl="your_OpenSSL root"

คุณจะหาไดเร็กทอรี OpenSSL ที่ติดตั้งไว้ที่ไหน?

# ubuntu 
locate ssl.h | grep '/openssl/ssl.h'

/home/user/.linuxbrew/Cellar/openssl/1.0.2r/include/openssl/ssl.h
/home/user/envs/py37/include/openssl/ssl.h
/home/user/miniconda3/envs/py38b3/include/openssl/ssl.h
/home/user/miniconda3/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.0.2s-h7b6447c_0/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.1.1b-h7b6447c_1/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.1.1c-h7b6447c_1/include/openssl/ssl.h
/usr/include/openssl/ssl.h

ระบบของคุณอาจแตกต่างจากของฉัน แต่อย่างที่คุณเห็นฉันมีไลบรารี openssl ที่ติดตั้งไว้มากมาย ในขณะที่เขียนนี้ python 3.8 คาดว่า openssl 1.0.2 หรือ 1.1:

Python ต้องการ libssl ที่เข้ากันได้กับ OpenSSL 1.0.2 หรือ 1.1 กับ X509_VERIFY_PARAM_set1_host ()

ดังนั้นคุณจะต้องตรวจสอบว่าไลบรารีใดที่ติดตั้งไว้ที่คุณสามารถใช้สำหรับการเชื่อมโยงตัวอย่างเช่น

/usr/bin/openssl version

OpenSSL 1.0.2g  1 Mar 2016
./configure --with-openssl="/usr"
make && make install

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


1

ในกรณีของฉันกับการใช้ Mac, /Applications/Python 3.7ฉันลบ เพราะฉันมี Python3.7 โดยbrew install python3 .

แต่มันเป็นจุดเริ่มต้นของข้อความ

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

สิ่งที่ฉันทำในสถานการณ์ของฉัน

  1. ฉันดาวน์โหลดตัวติดตั้ง macOS 64 บิตอีกครั้งและติดตั้ง
  2. ดับเบิลคลิก/Applications/Python3.6/Install Certificates.commandและ/Applications/Python3.6/Update Shell Profile.commandและ
  3. รีบูตเครื่อง Mac
  4. และผมไม่แน่ใจ pip.confแต่อาจจะมีส่วนทำให้ประสบความสำเร็จคือ ดูpip ติดตั้งล้มเหลว

1

ในที่สุดฉันก็แก้ปัญหานี้ได้ นี่คือรายละเอียด env ของฉัน:
เวอร์ชันของ Python ที่จะติดตั้ง: 3.6.8
OS: Ubuntu 16.04.6 LTS
Root access: ไม่มี

บางคนแนะนำให้ติดตั้งlibssl-devแต่มันไม่ได้ผลสำหรับฉัน ฉันไปที่ลิงค์นี้และฉันแก้ไขแล้ว!
ในระยะสั้นฉันดาวน์โหลดแยกสร้างและติดตั้ง OpenSSL (openssl-1.1.1b.tar.gz) จากนั้นแก้ไข.bashrcไฟล์ตามลิงค์นี้
ต่อไปฉันดาวน์โหลดและแยก Python-3.6.8.tgz ฉันแก้ไข Modules / Setup.dist เพื่อแก้ไขเส้นทาง SSL (บรรทัดรอบ ๆ # 211) ฉันไม่ได้./configure --prefix=$HOME/opt/python-3.6.8, และmake make installสุดท้ายฉันแก้ไข.bashrcไฟล์. สังเกตว่าฉันไม่ได้รวม--enable-optimizationsอยู่ใน./configure.


0

บน macos กำหนดค่า python 3.8.1 ด้วยคำสั่งด้านล่างจะแก้ปัญหาได้ฉันคิดว่ามันจะทำงานบน Linux ด้วย

./configure --enable-optimizations --with-openssl=/usr/local/opt/openssl@1.1/

เปลี่ยนพารามิเตอร์ dir ตามระบบของคุณ


0

หากคุณใช้ OSX และในกรณีที่โซลูชันอื่นไม่ได้ผลสำหรับคุณ (เช่นเดียวกับฉัน)

คุณสามารถลองถอนการติดตั้ง python3 และอัพเกรด pip3

brew uninstall --ignore-dependencies python3
pip3 install --upgrade pip   

สิ่งนี้ใช้ได้ผลสำหรับฉัน;)


0

(ไม่ใช่บน Windows!)

สิ่งนี้ทำให้ผมฉีกขาดเป็นเวลาหนึ่งสัปดาห์ดังนั้นฉันหวังว่านี่จะช่วยใครบางคนได้

ฉันลองทำทุกอย่างโดยไม่ต้องติดตั้ง Anaconda และ / หรือ Jupyter ใหม่

ติดตั้ง

  • AWS Linux
  • ติดตั้ง Anaconda 3-5.3.0 ด้วยตนเอง
  • Python3 (3.7) กำลังทำงานอยู่ภายในอนาคอนดา (กล่าวคือ ./anaconda3/bin/python )
  • นอกจากนี้ยังมี/usr/bin/pythonและ/usr/bin/python3(แต่สิ่งเหล่านี้ไม่ได้ถูกใช้เนื่องจากงานส่วนใหญ่ทำในเทอร์มินัลของ Jupyter)

แก้ไข

ในขั้วของ Jupyter:

cp /usr/lib64/libssl.so.10 ./anaconda3/lib/libssl.so.1.0.0

cp /usr/lib64/libcrypto.so.10 ./anaconda3/lib/libcrypto.so.1.0.0

อะไรทำให้เกิดสิ่งนี้?

ทั้งหมดนี้ใช้ได้ผลจนกระทั่งฉันได้ลองทำไฟล์ conda install conda-forge

ฉันไม่แน่ใจว่าเกิดอะไรขึ้น แต่ conda ต้องมีการอัปเดต opensslในกล่อง (ฉันเดาว่า) หลังจากนี้ทุกอย่างก็พัง

โดยทั่วไปไม่รู้จักฉัน conda ได้อัปเดต openssl แต่อย่างใดลบไลบรารีเก่าและแทนที่ด้วยlibssl.so.1.1และlibcrypto.so.1.1 .

ฉันเดาว่า Python3 ถูกรวบรวมเพื่อค้นหา libssl.so.1.0.0

ในท้ายที่สุดกุญแจสำคัญในการวินิจฉัยคือ:

python -c "import ssl; print (ssl.OPENSSL_VERSION)"

ให้เบาะแส library "libssl.so.1.0.0" not found

ข้อสันนิษฐานใหญ่ที่ฉันตั้งไว้คือyumเวอร์ชันของ ssl นั้นเหมือนกับไฟล์condaเวอร์ชันดังนั้นการเปลี่ยนชื่อวัตถุที่ใช้ร่วมกันอาจใช้งานได้และทำได้

วิธีแก้ปัญหาอื่น ๆ ของฉันคือรวบรวม python ใหม่ติดตั้งอนาคอนดาอีกครั้ง ฯลฯ แต่ในที่สุดฉันก็ดีใจที่ไม่จำเป็นต้องทำ

หวังว่านี่จะช่วยพวกคุณได้


0

ในกรณีของการใช้pyenvเพื่อจัดการการติดตั้ง python บน Mac OS Catalina ฉันต้องติดตั้งopensslด้วย brew ก่อนจากนั้นจึงรันหลังจากนั้นpyenv install 3.7.8ซึ่งดูเหมือนจะสร้างการติดตั้ง python โดยใช้opensslจาก homebrew (แม้จะกล่าวไว้ในเอาต์พุตการติดตั้ง) จากนั้นpyenv global 3.7.8และฉันก็ไม่อยู่


0

ฉันสามารถแก้ไขได้โดยอัปเดตเวอร์ชัน python ในไฟล์นี้ pyenv: ไม่ได้ติดตั้งเวอร์ชัน `` 3.6.5 '(ตั้งค่าโดย /Users/taruntarun/.python-version) แม้ว่าฉันจะติดตั้งเวอร์ชันล่าสุดแล้ว แต่คำสั่งของฉันยังคงใช้เวอร์ชันเก่า 3.6.5

ย้ายไปที่เวอร์ชัน 3.7.3


-1

ฉันมีปัญหาเดียวกันในช่วงสองวันที่ผ่านมาและได้รับการแก้ไขแล้วในตอนนี้

ฉันได้พยายามใช้--trust-hostตัวเลือกกับDigiCert_High_Assurance_EV_Root_CA.pemไม่ได้ผลฉันไม่สามารถติดตั้งโมดูล ssl ได้ (มันบอกว่าไม่สามารถติดตั้งสำหรับ python เวอร์ชันที่มากกว่า 2.6) การตั้งค่า$PIP_CERTตัวแปรไม่สามารถแก้ไขได้และฉันก็มีlibssl1.0.2และlibssl1.0.0ติดตั้งแล้ว นอกจากนี้ยังควรค่าแก่การกล่าวถึงฉันไม่มี~/.pip/pip.confไฟล์และการสร้างมันก็ไม่ได้แก้บั๊กเช่นกัน

ในที่สุดสิ่งที่แก้ไขได้คือการติดตั้ง python3.6 ด้วยmakeอีกครั้ง ดาวน์โหลดงูใหญ่ 3.6.0.tgz จากเว็บไซต์เรียกใช้configureแล้วmake, และmake test make installหวังว่ามันจะเหมาะกับคุณ


2
ขออภัยที่ต้องลดคะแนนเนื่องจากสิ่งนี้เพียงระบุว่าจะทำซ้ำขั้นตอนเดิมที่ทำให้เกิดข้อผิดพลาดนี้ ฉันไม่รู้ว่าคุณคาดหวังว่าจะเรียกใช้คำสั่งเดียวกันบนแหล่ง python เดียวกันและได้ผลลัพธ์ที่แตกต่างกันอย่างไร!
Jamie Lindsey

-1

เอกสารหลามเป็นจริงที่ชัดเจนมากและทำตามคำแนะนำได้งานในขณะที่คำตอบอื่น ๆ ผมพบว่าที่นี่ไม่ได้แก้ไขปัญหานี้

  1. ขั้นแรกให้ติดตั้ง python 3.xx จากซอร์สโดยใช้ตัวอย่างเช่นเวอร์ชัน 3.6.2 https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

  2. ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง openssl แล้วโดยรัน brew install openssl

  3. แตกไฟล์และย้ายไปที่ไดเร็กทอรี python: tar xvzf Python-3.6.2.tar.xz && cd Python-3.6.2

  4. ถ้าเวอร์ชัน python เป็น <3.7 ให้รัน

CPPFLAGS="-I$(brew --prefix openssl)/include" \ LDFLAGS="-L$(brew --prefix openssl)/lib" \ ./configure --with-pydebug 5. สุดท้ายเรียกใช้make -s -j2( -sคือแฟล็กเงียบ-j2บอกให้เครื่องของคุณใช้งาน 2 งาน)


j คือหน่วยความจำสำหรับ "งาน" ซึ่งเป็นจำนวนของกระบวนการที่ทำงานแบบขนานรันบิลด์ สำหรับแฟล็ก s มันยังคงแสดงคำเตือน แต่ไม่มีเสียงรบกวนเพิ่มเติมของระดับข้อมูล / การดีบัก แฟล็กเหล่านี้ใช้ในคำสั่ง python docs
pglaser

-1

ฉันมีปัญหาเดียวกันกับการพยายามติดตั้ง python3.7 บนเครื่อง ubuntu14.04 ปัญหาคือฉันมีโฟลเดอร์ที่กำหนดเองใน PKG_CONFIG_PATH และใน LD_LIBRARY_PATH ของฉันซึ่งทำให้กระบวนการสร้าง python ค้นหาไลบรารี openssl ของระบบไม่ได้

ดังนั้นลองล้างและดูว่าเกิดอะไรขึ้น:

export PKG_CONFIG_PATH=""
export LD_LIBRARY_PATH=""

2
สิ่งนี้จะทำลายวันของใครบางคนหากพวกเขามีสิ่งที่เป็นประโยชน์ในตัวแปรสภาพแวดล้อมเหล่านั้น
matanster

-1

ตกลงคำตอบล่าสุดสำหรับสิ่งนี้ ณ ตอนนี้อย่าใช้ Python 3.8ใช้เพียง 3.7 หรือน้อยกว่าเนื่องจากไลบรารีส่วนใหญ่ไม่สามารถติดตั้งได้ด้วยข้อผิดพลาดข้างต้น


เท่าที่ฉันรู้ว่า python ใช้แพ็คเกจพื้นฐานของระบบปฏิบัติการ สิ่งที่ชอบgcc, และopenssl zlibดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องติดตั้งข้อกำหนดเบื้องต้นเหล่านี้ก่อนที่จะรวบรวม python โดยเฉพาะเมื่อใช้กับ linux
stephen

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