web-dev-qa-db-ja.com

「PythonのSSLモジュールは利用できません」pip3でパッケージをインストールするとき

ローカルマシンに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>

pip install <package>でパッケージをインストールできるようにPython3.xインストールを修正するにはどうすればよいですか?

57
Harukaze

UbuntuでPython 3.6およびpip3をインストールするためのステップバイステップガイド

  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. https://www.python.org/ftp/python/ からホームディレクトリに「Python-3.6.8.tar.xz」をダウンロードして解凍します。

  3. そのディレクトリでターミナルを開き、実行します:$ ./configure

  4. ビルドとインストール:$ Sudo make && Sudo make install

  5. $ pip3 install package_nameでパッケージをインストールします

62
arsho

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
49
The Aelfinn

Windows上でanacondaを使用している場合、これは私のために働いた:

動作しない他の多くのソリューションを試しました(環境PATH変数の変更...)

この問題は、Windows\System32フォルダー内のDLL(たとえば、libcrypto-1_1-x64.dllまたはlibssl-1_1-x64.dllなど)が他のソフトウェアによって配置されていることが原因である可能性があります。

修正は、openSSLを https://slproweb.com/products/Win32OpenSSL.html からインストールしていたため、dllが最新バージョンに置き換えられました。

26
juergi

MastaBlastaの回答に同意します。私のために働いた。トピックの説明と同じ問題が発生しました。

環境:MacOS Sierra。そして、私はHomebrewを使用しています。

私の解決策:

  1. brew uninstall openssl, brew install opensslで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"

10
nathanyu

この問題は、おそらくライブラリの欠落が原因です。

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

詳細は buntuおよびLinuxMintにPython 3.6.0をインストールする方法

7
PengShaw

Ubuntuでは、これが役立ちます。

cd Python-3.6.2
./configure --with-ssl
make
Sudo make install
7
tingtinghuang

Windows 10でも同じ問題が発生しました。非常に具体的な問題は、Anacondaのインストールが原因です。 Anacondaをインストールし、Path/to/Anaconda3/というパスの下にpython.exeがあります。したがって、Anacondaにはpythonが含まれているため、pythonをインストールしませんでした。 pipを使用してパッケージをインストールすると、同じエラーレポートpip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.が見つかりました。

解決策は次のとおりでした:

1)公式の website ;でpythonを再度ダウンロードできます。

2)"Python 3.7 (64-bit).lnk"があるディレクトリに移動します

3)import sslおよびexit()

4)cmd、たとえば"Python 3.7 (64-bit).lnk" -m pip install tensorflowと入力します。

これで設定は完了です。

5
Yanqi Huang

WindowsでAnacondaを使用している場合、ユーザーwillliu1995として、cmd.exeの代わりにAnacondaプロンプトで「pip install ...」コマンドを実行してみてください。 here を提案します。これは私にとって最速のソリューションであり、追加のコンポーネントをインストールする必要はありません。

4
Butterfly

OSXを使用しており、ソースからpythonをコンパイルしている場合:

Brew brew install opensslを使用してopensslをインストールします

CPPFLAGSおよびLDFLAGSの設定については、brewの指示に従ってください。私の場合、[email protected] brew式を使用しており、SSLライブラリに正しくリンクするには、pythonビルドプロセスに次の3つの設定が必要です。

export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
export CPPFLAGS="-I/usr/local/opt/[email protected]/include"
export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"

ライブラリがその場所にインストールされていると仮定します。

4
mastaBlasta

A LOTこの問題を解決する方法を試しましたが、解決されたものはありませんでした。現在Windows 10を使用しています。

働いた唯一のものは:

  • Anacondaのアンインストール
  • アンインストールPython(iはバージョン3.7.3を使用していました)
  • Pythonを再度インストールします(自動的にPATHに追加するオプションをチェックすることを忘れないでください)

次に、PIPを使用して必要なすべてのライブラリをダウンロードしました...

理由がわからない、または問題が何らかの形でアナコンダに関連していたのかどうかわからない。

1
João Ignacio

私は同じ問題を抱えていましたが、次の手順で解決できました。

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

パーマによっては、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

またはパーマに応じて、次のように--userフラグを追加することもできます。

pip3.7 install pandas --user
1
RubenD

sslモジュールは、Operation Sytem(OS)ソケット( Lib/ssl.py )にアクセスするためのTLS/SSLラッパーです。したがって、sslモジュールが使用できない場合、OS OpenSSLライブラリがインストールされていないか、Pythonをインストールしたときにそれらのライブラリが見つからなかった可能性があります。それが後のケースであると仮定しましょう(別名:OpenSSLはすでにインストールされていますが、Pythonをインストールするときにそれらは正しくリンクされていません)。

また、ソースからインストールすることも想定しています。バイナリ(ウィンドウ:.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には、X509_VERIFY_PARAM_set1_Host()を備えたOpenSSL 1.0.2または1.1互換のlibsslが必要です。

したがって、リンクに使用できるインストール済みライブラリを確認する必要があります。たとえば、

/usr/bin/openssl version

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

PythonおよびOSで動作するライブラリを見つけるために、いくつか試してみるか、新しいものをインストールする必要がある場合があります。

0
bizi

私は過去2日間同じ問題を抱えていましたが、今すぐ修正しました。

--trust-Hostオプションを使用してDigiCert_High_Assurance_EV_Root_CA.pemオプションを使用しようとしましたが、sslモジュールをインストールできませんでした(2.6以上のpythonバージョンにはインストールできないことを示しています) 、$PIP_CERT変数を設定しても修正されず、libssl1.0.2libssl1.0.0がインストールされていました。 ~/.pip/pip.confファイルを持っていなかったことにも言及する価値があり、それを作成してもバグは解決しませんでした。

最終的にそれを解決したのは、makeでpython3.6を再度インストールすることでした。 Python-3.6.0.tgzをWebサイトからダウンロードし、configureを実行してからmakemake testおよびmake installを実行します。それがあなたのために働くことを願っています。

0
E.C Lobo

Python3.7をubuntu14.04マシンにインストールしようとすると、同じ問題が発生しました。問題は、PKG_CONFIG_PATHとLD_LIBRARY_PATHにいくつかのカスタムフォルダーがあり、pythonビルドプロセスがシステムのopensslライブラリを見つけることができなかったことです。

それらをクリアして、何が起こるか見てみてください:

export PKG_CONFIG_PATH=""
export LD_LIBRARY_PATH=""
0
Loki