Я использую MAC и Python версии 2.7.14.
Collecting psycopg2
Could not fetch URL https://pypi.python.org/simple/psycopg2/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:661) - skipping
Could not find a version that satisfies the requirement psycopg2 (from versions: )
No matching distribution found for psycopg2






Вы используете старый Python без наиболее безопасной реализации TLS, вам необходимо обновить его. В противном случае вы не сможете установить пакеты из PyPI.
1) Чтобы проверить версию TLS вашего интерпретатора Python, установите пакет «requests» и выполните команду. Например, для Python 2:
python2 -m pip install --upgrade requests
python2 -c "import requests;
print(requests.get('https://www.howsmyssl.com/a/check',verify=False).json()['tls_version'])"
Или Python 3:
python3 -m pip install --upgrade requests
python3 -c "import requests;
print(requests.get('https://www.howsmyssl.com/a/check',verify=False).json()['tls_version'])"
Если вы видите «TLS 1.2», TLS вашего интерпретатора обновлен. Если вы видите «TLS 1.0» или такую ошибку, как «версия протокола предупреждений tlsv1», то вам необходимо выполнить обновление.
2) Причина, по которой реализация TLS Python отстает в macOS, заключается в том, что Python продолжает использовать OpenSSL, который Apple прекратил обновлять в macOS. В следующем году команда Python Packaging Authority рассмотрит возможность переноса pip на собственную библиотеку SecureTransport от Apple в качестве альтернативы OpenSSL, которая позволит старым интерпретаторам Python использовать современный TLS только с pip. «Это нетривиальное усилие, - пишет Стаффт, - я не уверен, что это будет сделано».
В конечном итоге интерпретатор Python сам легко справился бы с версиями TLS, если бы он не использовал OpenSSL на таких платформах, как macOS и Windows, где OpenSSL не поставляется с ОС. Кори Бенфилд и Кристиан Хеймс предлагают переработать интерфейсы TLS стандартной библиотеки, чтобы упростить замену OpenSSL на встроенные в платформу реализации TLS.
Попробуй это:
pip install psycopg2-binary
сначала pip uninstall psycopg2 psycopg2-binary Затем pip install psycopg2. Таким образом, зависимости не сбиваются
У меня была эта проблема, я спросил и успешно ответил здесь:
Не удается заставить psycopg2 работать, но он установлен правильно. Mac OS
[сэкономьте клик]
Я установил anaconda2. При установке мой путь обновлен и теперь включает / anaconda / bin.
Затем с помощью навигатора установил pyscopg2. Теперь я могу использовать это в shebang, и мои скрипты выполняются нормально, и я могу импортировать этот модуль.
Gurmokhs-MBP:rest Gurmokh$ python
Python 2.7.12 |Anaconda 4.2.0 (x86_64)| (default, Jul 2 2016, 17:43:17)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import psycopg2
if psycopg2.connect("dbname='postgres' user='postgres' host='localhost'"):
... print "connection made"
...
connection made
>>>
* Я сделал трассировку с помощью Process Monitor. D: \ Anaconda3 \ DLLs_ssl.pyd ищет библиотеки DLL OpenSSL, но в неправильном / текущем месте! Поскольку они не найдены, поиск идет в C: \ Windows \ System32, где у нас есть те же библиотеки DLL, установленные другим приложением, но с другой версией.
Библиотеки DLL, поставляемые Anaconda3, расположены здесь: D: \ Anaconda3 \ Библиотека \ bin
разрешение:
Мое решение: Я скопировал следующие файлы
libcrypto-1_1-x64. * libssl-1_1-x64. * из D: \ Anaconda3 \ Библиотека \ binкD: \ Anaconda3 \ DLL.
Возможный дубликат pip install не выполняется для каждого пакета («Не удалось найти версию, удовлетворяющую требованиям»)