Yêu cầu (Do SSLError gây ra (“Không thể kết nối với URL HTTPS vì mô-đun SSL không khả dụng.”) Lỗi trong trang web yêu cầu PyCharm


84

Sử dụng yêu cầu trong Python3 Windows qua Pycharm và nhận Lỗi mô-đun SSL không khả dụng

Tôi đã dành hàng giờ để cố gắng tìm ra điều gì có thể gây ra điều này. Tôi đã cài đặt lại Anaconda và tôi hoàn toàn bị mắc kẹt. Khi chạy phần sau

def Earlybird(daycount):
    url = 'https://msft.com'
    response = requests.get(url)
    print(response)
Earlybird()

Tôi nhận được lỗi

requests.exceptions.SSLError: HTTPSConnectionPool(host='msft.com', 
port=443): Max retries exceeded with url: / (Caused by SSLError("Can't 
connect to HTTPS URL because the SSL module is not available."))

Tôi không biết điều gì có thể gây ra điều này. Vì Anaconda là bản cài đặt gần đây, tôi cho rằng mọi thứ sẽ được cập nhật, vì vậy tôi không chắc liệu điều này có trỏ đến sai SSL không? Tôi là một người mới sử dụng python, vì vậy cảm ơn sự kiên nhẫn của bạn. -


Đã cài đặt slproweb.com/download/Win64OpenSSL-1_1_1c.exe này từ OpenSSL. Đã giải quyết vấn đề của tôi.
Matej Novosad

Câu trả lời:


101

Không biết điều này đã được giải quyết chưa nhưng tôi đã gặp sự cố tương tự với Anaconda python 3.7.3 và Idle trên Windows 10. Hãy sửa nó bằng cách thêm:

<path>\Anaconda3
<path>\Anaconda3\scripts
<path>\Anaconda3\Library\bin

vào biến PATH.


Mặc dù không biết tại sao chúng ta phải xuất ra nhiều đường dẫn, nhưng nó hoạt động với tôi, cảm ơn.
hui chen

1
ĐIỀU NÀY LÀM VIỆC CHO TÔI! không phải cmd "thi hành ..." mà là cái này! thêm đường dẫn / anaconda3 / library / bin đã làm việc cho tôi
ERJAN

1
Không chắc chắn để hiểu bằng cách nào / ở đâu chúng ta phải thêm 3 đường dẫn này?
Alex Dana

Alex - thêm các mục này vào biến môi trường PATH (ví dụ: xem câu trả lời Mukesh Methaniya / Neuron bên dưới)
Paul Stevens

Tôi phải thêm các đường dẫn này vào đâu? Tôi đang cố gắng chạy mã python từ thư mục cụ thể bằng cách sử dụngpython get-pip.py
Danny Hern

24

Tôi đang sử dụng Windows 10, tôi đã gặp sự cố với cài đặt mới mới của Anaconda trên python 3.7.4, bài đăng này trên github đã giải quyết vấn đề của tôi:

(nguồn: https://github.com/conda/conda/issues/8273 )

Tôi trích dẫn:

"Giải pháp của tôi: Tôi đã sao chép các tệp sau

libcrypto-1_1-x64.*
libssl-1_1-x64.*

từ D: \ Anaconda3 \ Library \ bin đến D: \ Anaconda3 \ DLLs.

Và nó hoạt động như một sự quyến rũ! "


4
Phiên bản tương tự của mọi thứ đối với tôi. Windows 10 Miniconda có 3.7.4. Đã sửa bằng giải pháp này.
Kevin Vasko

1
Đã làm cho tôi. Cảm ơn bạn!
Tim Gottgetreu

13

Người dùng Windows cần đặt các đường dẫn dưới đây:

  • ..\Anaconda3
  • ..\Anaconda3\scripts
  • ..\Anaconda3\Library\bin

Mỗi người dùng:

  1. Biến môi trường mở
  2. Nhấp chuột User Variable
  3. Đóng dấu nhắc lệnh nếu đã mở và mở lại

Toàn hệ thống (yêu cầu khởi động lại) :

  1. Biến môi trường mở
  2. Nhấp chuột System Variable
  3. Khởi động lại Windows


9

Tôi đã cài đặt các tệp nhị phân từ đây: https://slproweb.com/products/Win32OpenSSL.html Trang web này được đề cập trên wiki OpenSSL chính thức. Nó đã giải quyết được vấn đề của tôi


1
có rất nhiều mã nhị phân ở đó, cái nào chính xác? Sẽ rất tuyệt nếu tạo liên kết hoặc ảnh chụp màn hình chính xác. Tôi đã sử dụng liên kết đầu tiên với tệp MSI và nó đã hoạt động, cảm ơn bạn: slproweb.com/download/Win64OpenSSL_Light-1_1_1b.msi
Stepan Yakovenko


5

Tôi không có Anaconda nên các bước tôi đã thực hiện là:

  • brew uninstall python3
  • brew install python3
    • nhận được thông báo lỗi cho biết, Your Xcode (10.2) is too outdated. Please update to Xcode 11.3 (or delete it). Xcode can be updated from the App Store.** Vì vậy, tôi đã xóa Xcode vì không có bản cập nhật nào hiển thị, sau đó tôi đã cài đặt lại nó.
    • đã chạy xcode-select --installtheo. Nếu không .. bạn sẽ gặp lỗi:The following formula python cannot be installed as binary package and must be built from source. Install the Command Line Tools: xcode-select --install
  • đã chạy brew install python3và nó đã hoàn tất thành công.

Đã sử dụng tập lệnh này chỉ để xem nó có hoạt động không

import requests
r = requests.get('https://www.office.com')
print(r)

Chạy tập lệnh python3 và python3.7 và đầu ra <Response [200]>thay vì SSLError.


5

Tôi đã phải đối mặt với nó vào ngày 20/04. Đây là những tùy chọn mà tôi đã thử và giải pháp cuối cùng giúp tôi vượt qua.

Vấn đề:

Mô-đun Yêu cầu hoạt động tốt khi tôi sử dụng trong Spyder IDE nhưng khi tôi cố gắng thực thi tập lệnh trong cửa sổ, nó không thành công với lỗi SSL. Nó hoạt động tốt với các yêu cầu HTTP nhưng đối với các yêu cầu HTTPS, tôi gặp lỗi SSL.

  1. Tôi mệt mỏi với Veify = True, False, cũng với Certs. Cùng một lỗi .
  2. Đã loại bỏ Certifi - conda loại bỏ chứng chỉ - Không hoạt động Đã cập nhật
  3. openssl, certifi - Vẫn bị lỗi như vậy (Tham khảo: https://github.com/ContinuumIO/anaconda-issues/issues/494 )
  4. các biến đường dẫn - Cùng một lỗi
  5. Đã tạo môi trường mới trong Anaconda - cùng một lỗi

Giải pháp đã khắc phục nó:

Giải pháp từ: https://github.com/conda/conda/issues/8273

Tôi đã sao chép các tệp sau từ Anaconda3 \ Library \ bin sang \ Anaconda3 \ DLL

libcrypto-1_1-x64. * libssl-1_1-x64. *


Điều này cũng làm việc cho tôi! Cảm ơn bạn đã thực hiện tất cả các bước gỡ lỗi :)
Lou

2

Tôi đã gặp sự cố tương tự trên Windows 10 khi sử dụng Conda và Python 2.7.2

Sau khi thử nhiều giải pháp, tôi nhận được phản hồi này này cho thấy rằng có vấn đề với openssl trong bản dựng đó.

Sau khi tôi hạ cấp python xuống 3.7.1 (build h33f27b4_4), mọi thứ đều hoạt động tốt.


1

Không cần thêm đường dẫn vào môi trường nếu bạn sử dụng Anaconda Prompt.

Bắt đầu thay đổi lời nhắc Anaconda đối với thư mục của bạn và chạy tập lệnh của bạn hoặc khởi động trình soạn thảo của bạn từ đó. Điều này sẽ đảm bảo bạn đang ở trong môi trường Anaconda đầy đủ và lỗi SSL sẽ dừng lại.

Sự khác biệt giữa dấu nhắc lệnh và Anaconda Prompt là gì? Xem câu trả lời SO này để biết sự khác biệt giữa dấu nhắc lệnh và dấu nhắc anaconda là gì .


1

Sau khi dành vài giờ xem qua tài liệu Anaconda, Github phát hành vé, v.v., cuối cùng tôi đã cố gắng làm cho nó hoạt động trên Windows 10 64-bit (Anaconda 3.7). Điều nó hoạt động với tôi là cài đặt tệp nhị phân Win64 OpenSSL v1.1.1d từ https://slproweb.com/download/Win64OpenSSL-1_1_1d.exe .

LƯU Ý : Phiên bản có vẻ quan trọng! Tôi đã thử 1.1.0L (như được đề xuất trong các nhận xét và phản hồi khác) nhưng với phiên bản này, sự cố vẫn tiếp diễn. Nếu bạn tiếp tục gặp sự cố sau khi cài đặt một số lib OpenSSL, hãy tiếp tục thử cho đến khi bạn tìm thấy phiên bản phù hợp. Đối với Anaconda 3.7 trên Windows 10, có vẻ như cái phù hợp là 1.1.1d. Tôi đã không thử phiên bản nhẹ.

Những điều không hiệu quả với tôi:


1

Gặp phải lỗi SSL tương tự khi thực hiện cài đặt pip sau khi cài đặt anaconda mới. Điều đã giúp là kích hoạt môi trường cơ sở trước khi thực hiện cài đặt pip. Thực hiện một activate basetừ cmd và sau đó chạy tập lệnh python của bạn. Bạn cũng có thể thử 'conda run -n base python script.py'Tham khảo - https://github.com/conda/conda/issues/8487


1

Tôi đã gặp điều tương tự khi cài đặt Windows 10 của mình.

Anaconda3 sẽ không mở Anaconda Navigator trước khi tôi sao chép libcrypto-1_1-x64.dll and libssl-1_1-x64.dlltừ Anaconda3\Library\bin to \Anaconda3\DLL.

Sau khi tôi thực hiện pipcài đặt đó trong môi trường cơ sở hoạt động tốt nhưng không hoạt động trong môi trường khác mà tôi đã tạo. Tôi đã phải làm như trên trong môi trường mới.

Đó là, sao chép libcrypto-1_1-x64.dll and libssl-1_1-x64.dlltừ đó \<env folder>\Library\binđến \<env folder>\DLLnay nó hoạt động tốt.


0

truy cập trang web: cung cấp cho tôi thông tin sau từ công cụ dành cho nhà phát triển và xem các tiêu đề. (nhấp chuột phải -> kiểm tra. sau đó mở tab mạng và kiểm tra tiêu đề)

  • URL yêu cầu: http://www.msft.com/
  • Phương thức yêu cầu: GET
  • Mã trạng thái: 200 OK
  • Địa chỉ từ xa: 205.178.189.130:80
  • Chính sách liên kết giới thiệu: không giới thiệu khi hạ cấp

Vì vậy, chúng tôi thấy rằng chúng tôi cần thực hiện một yêu cầu tới HTTP, không phải HTTPS.

import requests


def Earlybird():
    url = 'http://msft.com/'
    response = requests.get(url)
    print(response.text)

if __name__ == '__main__':
    Earlybird()

0

Lưu ý: Sự cố này đã được khắc phục trên windows 10 Tôi đang gặp phải sự cố tương tự với môi trường ảo trên windows 10. Sự cố đã được giải quyết khi chạy CMD với tư cách quản trị viên và tạo môi trường ảo mới.

  • Chạy cmd với tư cách quản trị viên
  • tạo môi trường ảo (virtualenv .venv)
  • kích hoạt môi trường ảo .venv \ Scripts \ active
  • Yêu cầu cài đặt Pip

0

Giải quyết bằng cách làm như sau trong Windows 10 của tôi:

mklink "C:\Users\hal\AppData\Local\Continuum\anaconda3\DLLs\libssl-1_1-x64.dll" "C:\Users\hal\AppData\Local\Continuum\anaconda3\Library\bin\libssl-1_1-x64.dll"

mklink "C:\ProgramData\Anaconda3\DLLs\libcrypto-1_1-x64.dll" "C:\ProgramData\Anaconda3\Library\bin\libcrypto-1_1-x64.dll"

0

Tôi sử dụng VSCode để chỉnh sửa và gỡ lỗi và giải pháp duy nhất phù hợp với tôi là chỉnh sửa các biến môi trường trong windows .. Rõ ràng điều này gây ra sự cố nhưng tôi không chắc chúng là gì.

Chạy từ lời nhắc Anaconda (theo gợi ý của sayth) KHÔNG phải là một lựa chọn cho tôi. Hoặc có lẽ gợi ý là chạy lời nhắc anaconda và từ lời nhắc anaconda bằng cách nào đó khởi động VSCode. Nghe có vẻ không phải là một yêu cầu hợp lý.

Đây dường như là một vấn đề kinh niên kéo dài mà không có câu trả lời toàn cầu dứt khoát phù hợp với tất cả mọi người.



0

Sau khi xử lý vấn đề tương tự trên Windows 10, giải pháp khá đơn giản:

  1. Mở Anaconda Prompt
  2. Chạy conda init
  3. Đóng và mở lại mọi trình thông dịch Python đang mở (PyCharm, Anaconda Prompt, cmd, v.v.) mà bạn muốn chạy mã của mình

Chạy lại mã của bạn và nó sẽ hoạt động. Tôi đã nâng cấp cả Anaconda và PyCharm, và gặp sự cố với tất cả các kết hợp phiên bản cho đến khi tôi chạy conda init, điều này bổ sung vào PATH của bạn giống như câu trả lời từ Paul Stevens . Đừng bỏ qua # 3 — khởi động lại PyCharm hoặc bất kỳ trình thông dịch nào khác là chìa khóa.


0

Lỗi này xảy ra trong VSCode với Python 3.7.3 nhưng hoạt động tốt trong trình soạn thảo IDLE trong Windows 10 với Python 3.7.0.


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.