Sự cố chứng chỉ với Python3 trên OSX


3

Tôi gặp vấn đề về python giống như nhiều người dùng với OSX, xuất hiện khi tôi đang cố gắng truy cập mọi thứ qua https.

ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] chứng nhận xác minh không thành công (_ssl.c: 749)

Tôi biết về giải pháp sau đây (phản hồi được chấp nhận): https://stackoverflow.com/questions/42098126/mac-osx-python-ssl-sslerror-ssl-cert ve-verify-fails-xác nhận-verify .

Nhưng thật không may, nếu tôi không có một thư mục như:

/Applications/Python 3.6/ReadMe.rtf

Do đó tôi không làm thế nào để tiến hành. Đặc biệt khi tôi cài đặt python3, tôi đã sử dụng nó thông qua

brew install python3

Tôi cũng đã cố gắng lên lệnh

brew upgrade python3 

Nhưng nó chẳng thay đổi gì cả. Hơn nữa, đủ lạ, theo brew bây giờ tôi đã cài đặt python 3.7.2.1 vì nó trả về lỗi sau nếu tôi thử lại để nâng cấp:

Tommasos-MBP:~ tommaso$ brew upgrade python3
Error: python3 3.7.2_1 already installed

Nhưng nếu tôi kiểm tra phiên bản python3 của máy tính thì tôi nhận được cái này.

Tommasos-MBP:~ tommaso$ python3 --version
Python 3.6.3

Tôi nên tiến hành như thế nào và tại sao brew nghĩ rằng tôi đã cài đặt 3.7 trong khi Python vẫn là 3.6?

EDIT Nếu tôi chạy Brew bác sĩ tôi nhận được như sau:

Cảnh báo: tập lệnh "config" tồn tại bên ngoài hệ thống hoặc thư mục Homebrew của bạn. ./configurecác tập lệnh thường tìm kiếm các tập lệnh * -config để xác định xem các gói phần mềm đã được cài đặt chưa và sử dụng các cờ bổ sung nào khi biên dịch và liên kết.

Có các tập lệnh bổ sung trong đường dẫn của bạn có thể gây nhầm lẫn phần mềm được cài đặt qua Homebrew nếu tập lệnh cấu hình ghi đè lên một hệ thống hoặc tập lệnh do Homebrew cung cấp cùng tên. Chúng tôi đã tìm thấy các tập lệnh "cấu hình" sau: /
L
Library / Frameworks / Python.framework / Warions / .6 / bin / python3.6m- config / L Library / Frameworks / Python.framework / Warions / .3 / bin / python3- config / Library / Khung / Python.framework / Phiên bản / 3.6 / bin / python3.6-config

Cảnh báo: Bạn có các thùng không được liên kết trong Hầm của bạn Việc bỏ các thùng không được liên kết có thể dẫn đến sự cố xây dựng và khiến các nhà sản xuất bia phụ thuộc vào các thùng đó không chạy đúng khi được xây dựng. Chạy brew linktrên những cái này: python
ber ở-db


Xin vui lòng đọc thông tin trong brew info python. Nếu bạn chạy which -a pythonhoặc which -a python3bạn sẽ thấy nơi nhị phân được lưu trữ, và cái nào được ưu tiên. Bạn có thể phải điều chỉnh cho PATHphù hợp. Python 3.6.3 hiện tại của bạn đến từ đâu?
slhck

Cảm ơn vì đã trả lời! Tôi không biết về lệnh trăn bia thông tin! Khi tôi chạy, which -a python3 tôi nhận được những điều sau:/Library/Frameworks/Python.framework/Versions/3.6/bin/python3 /Library/Frameworks/Python.framework/Versions/3.6/bin/python3 /usr/local/bin/python3
Tommaso Bendinelli

Bạn đã cài đặt phiên bản 3.6 này tại một số điểm? Vui lòng chạy chương trình, brew doctornó có thể cho bạn biết phải làm gì với Python 3.6 đó. Nếu bạn không cần nó, tôi khuyên bạn nên gỡ cài đặt nó và chỉ làm việc với Homebrew Python. Nó có thể yêu cầu xóa hoàn toàn /Library/Frameworks/Python.framework/Versions/3.6/thư mục và cài đặt lại Python Homebrew.
slhck

Xem chỉnh sửa trong bài
Tommaso Bendinelli

Câu trả lời:


1

Bạn đang chạy một số phiên bản của Python 3:

  • Một cài đặt thông qua trình cài đặt chính thức, vào /Library/Frameworks/Python.framework/Versions/3.6//Applications/Python 3.6(3.6)
  • Một qua Homebrew qua brew install python(3.7)

Những điều này có thể xung đột. Bạn chỉ cần một trong số họ. Tôi khuyên bạn nên gỡ cài đặt cái đầu tiên và chỉ làm việc với Homebrew Python. Sau đó, bạn ít nhất có thể chắc chắn nơi các vấn đề Python tiềm ẩn đến từ đâu.

Để thực hiện gỡ cài đặt, bạn phải xóa hai thư mục, tải lại vỏ của bạn. Bạn cũng có thể phải xóa các liên kết tượng trưng vẫn trỏ đến phiên bản Python này mà bạn có thể tìm thấy với:

ls -l /usr/local/bin | grep 'Python.framework/Versions/3.6' 

Sau đó, chạy brew reinstall python.

Lưu ý rằng phiên bản Python 3.7 mới của bạn (thông qua Homebrew) sẽ tồn tại /usr/local/bin/python3, vì vậy hãy đảm bảo rằng bạn $PATHchứa thư mục này và bạn gọi python3khi bạn muốn Python của Homebrew.

Bạn cũng có thể chọn sử dụng pythoncho phiên bản 3.7. Trong trường hợp này, vui lòng đọc ghi chú về "symlink không đảo ngược" trong brew info python.


Cảm ơn bạn rất nhiều, chỉ một câu hỏi. Tôi có cần tải xuống lại tất cả các gói mà tôi đang sử dụng trước khi xóa thư mục cài đặt chính thức hay chúng vẫn tồn tại? Nếu vậy, làm thế nào tôi có thể truy cập chúng?
Tommaso Bendinelli

Bạn cần phải cài đặt lại chúng với pip. Tôi sẽ chạy pip3 freeze > requirements.txttrước khi gỡ cài đặt phiên bản cũ. Điều này sẽ cung cấp cho bạn đầu ra ở định dạng có thể được cài đặt lại bất cứ lúc nào với pip3 install -r requirements.txt. Hãy chắc chắn rằng pip3 listthực sự xuất ra một cái gì đó và chỉ pip3chính xác đến cài đặt cũ của bạn.
slhck
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.