Pip được cấu hình với các vị trí yêu cầu TLS / SSL, tuy nhiên mô-đun ssl trong Python không khả dụng


208

Tôi đang sử dụng Python3.6, khi tôi cố gắng cài đặt "mô-đun" bằng cách sử dụng pip3, tôi gặp phải vấn đề được đề cập bên dưới "pip được định cấu hình với các vị trí yêu cầu TLS / SSL, tuy nhiên mô-đun ssl trong Python không khả dụng"


1
hệ điều hành?
ZiTAL


1
Hệ điều hành là oracle linux 7.x
Santosh Kumar G

1
Bạn đã cài đặt pip từ trình quản lý gói? Nếu bạn đã cài đặt biên dịch, trước tiên hãy cài đặt libssl-devhoặc cài đặt ssl từ pip pip install ssl stackoverflow.com/questions/41098252/ Lời
ZiTAL

37
@ZiTAL pipkhông hoạt động vì sslbạn yêu cầu cài đặt ssl, với pip :)
Ramazan Polat

Câu trả lời:


189

Đối với Windows 10 nếu bạn muốn sử dụng pip trong cmd bình thường, không chỉ trong lời nhắc Anaconda. bạn cần thêm 3 đường dẫn môi trường. như sau:

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

hầu hết mọi người chỉ thêm D: \ Anaconda3 \ Sc scripts;


1
Cảm ơn, tôi đã thêm D: \ Anaconda3 \ Library \ bin và nó hoạt động, bằng cách libssl-1_1-x64.dll nằm trong thư mục đó. (win10x64, python 3.7)
APET

Khi bạn thêm ba người đó vào đường dẫn của mình, hãy đóng cmd lại và thử lại, nó sẽ hoạt động.
dùng3568896

Bạn có ý nghĩa gì với những con đường môi trường? bạn có nghĩa là biến môi trường PATH? cộng với tôi không có các thư mục đó trong ổ D của mình, chúng có được tạo khi tôi cài đặt Anaconda không?
Amit Raz

An cũng cho windows 8.1
Antoine

1
Điều này KHÔNG hoạt động nếu một người không sử dụng Anaconda. Tôi đã gặp vấn đề này với các bản cài đặt OSGeo4W64 và QGIS 3.10.2. Thêm những gì tôi thu thập được là các đường dẫn chính xác cho biến PATH không khắc phục được sự cố (ví dụ C:\Program Files\QGIS 3.10\apps\Python37\Scripts:).
CNIDog

175

HỆ ĐIỀU HÀNH MAC

Tôi đã gặp vấn đề tương tự trên Mac OS (Mojave) và đã giải quyết vấn đề như được đề cập trong liên kết này - Vấn đề Openssl .

  1. Nếu bạn không có Homebrew hoặc không biết Homebrew là gì:

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

  2. Hoặc nếu bạn đã cài đặt Homebrew:

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

Cập nhật: Hãy nhớ rằng tôi phải sử dụng --ignore-dependenciescờ, vì các gói khác được cài đặt phụ thuộc vào OpenSSL.

Bổ sung nếu sự cố được gây ra sau khi sử dụng pyenv , bạn có thể khắc phục bằng cách sử dụng:

brew reinstall python

5
Sau khi cài đặt Python phiên bản khác , pip đã bị hỏng. Giải pháp này đã giúp tôi sửa chữa.
iMitwe

15
tại sao github.com/tebelorg/Tump/release/doad/v1.0.0/openssl.rb cũng được thêm làm phụ thuộc? :) Tôi nghĩ rằng nó nên được gỡ bỏ vì nó hoàn toàn không liên quan và có khả năng không an toàn
Đánh dấu

1
Tôi hiểu rằng đó có thể là một rủi ro bảo mật nhưng tất cả người dùng đã yêu cầu sử dụng gói qua liên kết gói chính thức - github.com/kelaberetiv/TagUI/issues/635
Vaulstein

1
@Vaulstein Bây giờ bạn đề cập đến nó. Tôi nghĩ rằng tôi đã cài đặt một số gói bằng cách sử dụng brew trước khi điều này bị phá vỡ. Nó đã được gpg.
nghiện

2
Sau khi nâng cấp từ Mojavelên Catalina, tôi nhấn cái này. Tôi chỉ cần brew update && brew upgradecho nó hoạt động trở lại. Cảm ơn vì lời khuyên!
rustyMagnet

35

Đối với người dùng Debian, những điều sau đây có thể được sử dụng:

sudo -s

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

Sau đó, cd vào thư mục với mã nguồn thư viện Python 3.X và chạy:

./configure
make
make install

@MehmetKurtipek, tôi đã chỉnh sửa câu trả lời để làm rõ một bước. Nếu điều này vẫn không có ích, vui lòng làm rõ vấn đề của bạn
Rafael B

5
Hóa ra Python3.7 có vấn đề tốt cùng với Ubuntu 14.04 trở lên. Gói SSL yêu cầu tối thiểu cho Python3.7 không tương thích với ubuntus cũ. Cảm ơn vì đã chỉnh sửa :)
Mehmet Kurtipek

@MehmetKurtipek Máy chủ của tôi là 1404. Vậy phiên bản mới nhất của python không có vấn đề này. Tôi có python 3.7.4 có cùng một vấn đề ...
một đề nghị không thể từ chối

@MehmetKurtipek Bạn đã giải quyết vấn đề mà không cần nâng cấp hệ thống chưa? Tôi cũng đang làm việc vào ngày 14.04
một đề nghị không thể từ chối

sử dụng mint19 và python 3.8, điều này đã khắc phục vấn đề của tôi
5uperdan

21

Đối với người dùng Oracle Linux trong tương lai đang cố gắng giải quyết vấn đề này, dưới đây là những gì làm việc cho tôi. Đầu tiên cài đặt libs bị thiếu:

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

Sau đó, cd vào thư viện Python3.X của bạn và chạy:

make
make install 

1
Câu trả lời này đã giải quyết tốt vấn đề trên CentOS của tôi 7.
Tối đa

Những thư viện này là gì? Tại sao họ được yêu cầu?
Mohit Motwani

Thực hiện kết nối an toàn qua internet yêu cầu điều này - ví dụ: khi bạn chạy 'pip install'
limboy

@MohitMotwani - fuhgeddaboudit ... urbandipedia.com/define.php?term=fuhgeddaboudit
barrypicker

20

Đối với centos 7:

Cài đặt openssl:

sudo yum install openssl-devel

Bây giờ thư mục goto python đã được chúng tôi trích xuất tarthon python,

chạy bên dưới các lệnh

sudo ./configure
sudo make
sudo make install

Điều này sẽ khắc phục vấn đề trong centos ...


10

Đối với Windows 10, windows 7 Nếu cài đặt pip không hoạt động trên dấu nhắc CMD, hãy chạy nó bằng dấu nhắc Anaconda - nó hoạt động.

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


6
Tôi biết câu trả lời đúng, nếu bạn muốn sử dụng pip trong cmd bình thường, không phải nhắc Anaconda, bạn cần thêm 3 đường dẫn môi trường: như sau: D: \ Anaconda3; D: \ Anaconda3 \ ScScript; D: \ Anaconda3 \ Library \ bin giờ chỉ có Tập lệnh!
无名

5

Đối với OpenSUSE theo cách tương tự, nhưng một vài thay đổi của các gói được liệt kê ở trên:

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

Sau đó cdđến Python nguồn dir và

make
make install

hoặc là

make
make altinstall

Và có lẽ

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

nên được thực thi cho người dùng OpenSUSE. Xem cài đặt Python 3.7 không hoạt động trên openSUSE Leap 42.3



4

Đã làm cho tôi.

apt-get install libssl-dev

Sử dụng điều này để kích hoạt ssl cho pip. Hãy cho tôi biết nếu ai đó gặp phải vấn đề.


4

Trong trường hợp cài đặt nó với homebrew trên macOS, tôi có thể có phiên bản mới hơn để khắc phục điều này:

$ brew update && brew upgrade pyenv

Sau đó cài đặt lại phiên bản python:

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

Lưu ý, sẽ hơi bẩn khi ghi đè cài đặt python hiện có như thế, nhưng trong trường hợp của tôi, nó đã hoạt động được.


3

Tôi gặp vấn đề này với Visual Studio Code khi cài đặt pylint từ dấu nhắc VS Code. Tôi đã có thể khắc phục vấn đề bằng cách mở thư mục cài đặt Anaconda và chạy

pip install pylint

Sau đó, VS Code rất vui, nhưng điều đó không khắc phục được sự cố khi chạy

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

khá nhiều lỗi tương tự nên có vẻ như VS Code không thể truy cập các mô-đun python.

Lưu ý rằng Mã VS chọn con trăn đầu tiên mà nó nhìn thấy khi được cài đặt, phía dưới bên trái của màn hình cho biết env nào đang được sử dụng. Nhấp vào khu vực đó cho phép thiết lập môi trường. Vì vậy, ngay cả khi bạn chạy cài đặt pip cho môi trường, Mã VS có thể được xem xét ở một môi trường khác.

Cách tiếp cận tốt nhất là đảm bảo rằng mã VS có môi trường python chính xác được chọn và môi trường tương tự nằm trong hệ thống PATH (trong Thuộc tính hệ thống -> Nâng cao -> Biến môi trường)

Trong Biến đường dẫn, Chỉnh sửa và duyệt đến thư mục Anaconda cụ thể mà bạn muốn VSCode sử dụng và thêm vào PATH, tôi cần phải thêm vào như sau:

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

Thư mục cài đặt Anaconda của bạn có thể khác nhau. Một lưu ý là Windows không có biến PATH có hiệu lực cho đến khi bạn khởi động lại thiết bị đầu cuối. Trong trường hợp này đóng và re-op mã VS. Nếu sử dụng Terminal hoặc PS Shell thì hãy đóng và mở lại và kiểm tra Đường dẫn để đảm bảo nó được bao gồm.


3

Tương tự như giải pháp trên cài đặt lại phiên bản python với pyenv.

Bằng cách nào đó, tôi đã nâng cấp opensslcái đã phá vỡ python phiên bản pyenv.

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

Dòng đầu tiên cho biết nó dựa vào openssl homebrew.


3

Tôi đang sử dụng Windows 10 và đã cài đặt Miniconda 3 với Python 3.7.

Tôi đã khắc phục lỗi này bằng cách theo dõi https://github.com/conda/conda/issues/8273 này

Cụ thể, tôi sao chép các tập tin sau đây từ 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

Nếu bạn không có Chocolatey, hãy cài đặt nó - từ đây: https://chocolatey.org/docs/installation

Bạn chỉ có thể sao chép dán một dòng lệnh và thực hiện nó từ dấu nhắc lệnh với các đặc quyền nâng cao.

Cài đặt anaconda, sử dụng dòng lệnh:

choco install anaconda3

Đặt biến môi trường:

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

và sau đó chạy lệnh thất bại. Trong trường hợp của tôi, đó là:

pip install conan

Anaconda sử dụng cài đặt python riêng biệt, và pip cũng là đặc trưng của Anaconda.


1

Như Tokci đã nói, nó cũng hoạt động cho Windows 7.

"Đi bằng chuột đến Biểu tượng Windows (phía dưới bên trái) và bắt đầu nhập" Anaconda ". Sẽ hiển thị một số mục phù hợp. Chọn" Anaconda Prompt ". Cửa sổ lệnh mới, có tên" Anaconda Prompt "sẽ mở ra."

Sau đó pip hoạt động.

Những điều sau đây cũng giúp nhập xgboost: https://www.youtube.com/watch?v=05djBSOs1FA


Tìm kiếm tương đương linux ... nhưng dù sao, tại sao điều này sẽ hoạt động và sử dụng pip từ dòng lệnh sẽ không? điều này chỉ có ý nghĩa nếu bạn đã xây dựng lại con trăn của Anaconda bằng SSL vào một lúc nào đó.
matanster

Tôi không biết tại sao nhưng những gì bạn nói nghe có vẻ hợp lý
Ayan Omarov

1

Nếu ai đó đang sử dụng Arch Linux OS, tôi đã giải quyết vấn đề TLS / SSL bằng cách chạy này:

sudo pacman -S openssl

Sau đó, tôi có thể sử dụng pip để cài đặt gói tôi cần:

pip install openpyxl

1

Đi tới dấu nhắc và gõ Anaconda (nếu bạn đã cài đặt python 3.x trên công cụ của mình):

py -m pip install pymysql 

tôi đã có cùng một vấn đề và điều này đã giải quyết vấn đề của tôi. sau này, bạn có thể nhập pymysql trong power shell hoặc bất kỳ dấu nhắc nào khác.


1

Đã gặp phải sự cố này trong khi cài đặt python 3.8 từ nguồn trên ubfox. Các bước cần thiết để cài đặt thành công cùng với python 3.7 mặc định được tóm tắt dưới đây:

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

Hướng dẫn cài đặt cho zlib1g-devbuild- Essential là không cần thiết, vì máy tính để bàn Ubuntu đã có những thứ này, nhưng cần thiết cho một số phiên bản EC2 của Amazon. python 3.8.0 là bản phát hành hiện tại, nhưng nên được thay thế bằng bản mới nhất hiện có.

Các hướng dẫn này là tốt nhất để giữ python 3.7 làm mặc định cho python3 và chạy python 3.8 trong môi trường ảo.


1

Vấn đề là do gói OpenSSL bị thiếu trên PC của bạn.

Nếu pip install openpyxlcũng cho lỗi.

bạn có thể khắc phục điều này bằng cách cài đặt OpenSSL (Win64 OpenSSL v1.1.1g) từ trang web bên dưới:

slproweb.com/products/Win32OpenSSL.html

Khởi động lại IDE bạn đang sử dụng để các thay đổi có hiệu lực.


0

Tôi gặp vấn đề này! Tôi vô tình cài đặt phiên bản 32 bit của Miniconda3. Hãy chắc chắn rằng bạn chọn phiên bản 64 bit!


0

Điều này làm việc cho tôi:

yum install python36-pyOpenSSL 

phiên bản python và trình quản lý gói có thể khác nhau.


0

Tôi đã thử:

python -m pip install --upgrade pip

Và sau đó, nó hoạt động tốt với tôi trong Windows 10.


0

Đã sửa lỗi này mà không phải thay đổi bất cứ điều gì liên quan đến TSL / SSL.

Tôi đã cố gắng để xem nếu điều tương tự đã xảy ra pip, và thấy rằng nó pipđã bị phá vỡ. Có phải một số đào và nhận ra nó có thể do Homebrew đã xóapython@2 vào ngày 1 tháng 2 năm 2020.

Chạy brew uninstall python@2để xóa python2 được cài đặt bởi Homebrew.

Phá hủy env ảo được tạo bằng cách sử dụng python3và tạo một cái mới.
pip3cài đặt hoạt động tốt trở lại.


2
Đối với tôi, chuyển sang phiên bản cũ hơn opensslđã hoạt động: brew switch openssl 1.0.2t Tôi đang dùng Mac OS Catalina 10.15.3. Hy vọng nó giúp.
viraj.kulkarni

-1

Đây là vấn đề với cài đặt ssl mặc định của bạn. Bạn phải tải xuống Python3 và thêm đường dẫn vào hệ thống của bạn. Nếu bạn sử dụng Pycharm, hãy đặt trình thông dịch thành đường dẫn python3 của bạn. Sau đó, bạn có thể sử dụng pip3 mà không gặp lỗi.


-1

Vấn đề có thể đến từ phiên bản gói openssl đã cài đặt của bạn. Đó là trường hợp của tôi và tôi đã khắc phục vấn đề này chỉ bằng cách nâng cấp nó. Tôi đang dùng Mac OS, sử dụng brew:

brew upgrade openssl

Nếu bạn đã cài đặt python với brew, điều này sẽ trực tiếp khắc phục sự cố với nó, vì python phụ thuộc vào openssl


-1

Bạn sẽ thử từ Anaconda Prompt.

Bạn sẽ thấy (cơ sở), bây giờ nâng cấp pip. Thí dụ:

(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

Việc này mất nhiều thời gian hơn, nhưng cũng sẽ cài đặt hoặc nâng cấp các thư viện SSL mà Anaconda sử dụng nội bộ. Tiếp tục đi đây


Câu trả lời này giả định sử dụng conda trên Windows, không phải vanilla python trên Linux như OP đã chỉ ra
hrbdg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.