web-dev-qa-db-ja.com

sslモジュールが利用できないためにpython3.6が失敗して、仮想環境内にpip3がインストールされます

(py36venv)vagrant @ pvagrant-dev-vm:/ vagrant/venvs $ pip3 install pep8

pipはTLS/SSLを必要とする場所で構成されていますが、Pythonのsslモジュールは使用できません。

Pep8の収集でURLを取得できませんでした https://pypi.python.org/simple/pep8/ :SSL証明書の確認に問題がありました:SSLモジュールが利用できます。 -スキップ

要件pep8を満たすバージョンが見つかりませんでした(バージョンから:)pep8に一致するディストリビューションが見つかりませんでした

背景情報-pythonへ移動しようとしています3.6。

以下のコマンドを使用してpython3.6をインストールしました。

wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz

tar -xvf Python-3.6.0.tgz

cd Python-3.6.0
./ configure --enable-optimizations
make -j8 sudo make altinstall python3.6

Virtualenvの作成者:

python3.6 -m venv py36venv

ソースpy36venv/bin/activate

Pep8をインストールしようとしました

(py36venv)pip3 install pep8

pipはTLS/SSLを必要とする場所で構成されますが、Pythonのsslモジュールは使用できません。 pep8の収集

URLを取得できませんでした https://pypi.python.org/simple/pep8/ :SSL証明書の確認で問題が発生しました:HTTPS URLに接続できません

SSLモジュールは使用できません。 -スキップします要件pep8を満たすバージョンが見つかりませんでした(バージョン:)pep8に一致するディストリビューションが見つかりません

36
Py_minion

私は、ubuntu 14.04でのpython3.6のインストールについて以下の手順を実行しましたが、virtualenv pipのインストールは正常に動作します。

Python 3.6インストール:

Sudo apt-get install python3-dev libffi-dev libssl-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz  
tar xvf Python-3.6.0.tgz
cd Python-3.6.0
./configure --enable-optimizations  
make -j8  
Sudo make altinstall
python3.6

次のエラーが表示される場合-

zipimport.ZipImportError:データを解凍できません。 zlibは利用できませんmake:*** [altinstall]エラー1

試してください:

Sudo apt-get install zlib1g-dev

検証:

Python3.6でvirtualenvを作成します。

python3.6 -m venv testenv
source testenv/bin/activate
pip install pep8

pipを使用:

(testenv) vagrant@pvagrant-dev-vm:~$ pip install pep8
*Collecting pep8
  Downloading pep8-1.7.0-py2.py3-none-any.whl (41kB)
    100% |████████████████████████████████| 51kB 4.1MB/s
Installing collected packages: pep8
Successfully installed pep8-1.7.0*

(testenv) vagrant@pvagrant-dev-vm:~$ pip list

pep8 (1.7.0) 
pip (9.0.1)
setuptools (28.8.0)
53
Py_minion

Python3.6.0を使用して仮想環境を作成しようとしたときに、同じ問題に出くわしました。 Mac OS X 10.12.2向けの私のソリューションを次に示します(Py_minionのコメントはかなり近かったです):

セットアップ

次の手順で環境を作成しました:実行中のpython3.6.0のダウンロード

./configure --prefix=<some_path>`
make
make install
mkvirtualenv --python=<some_path/bin/python3.6> foo

基本的に次のようになります: https://stackoverflow.com/a/11301911/128609

makeを実行すると、私と同じ問題が発生した場合の表示は同様の行になります

The necessary bits to build these optional modules were not found: _ssl

解決

Opensslをインストールする

brew install openssl
brew unlink openssl && brew link openssl --force

Module/SetupまたはModule/Setup.distの変更

これらのファイルは、ダウンロードしたPythonバージョンのディレクトリにあります。

コメントし、必要に応じて209行目から211行目にコメントします(SSL変数をopensslの場所に変更する必要がありました)。

SSL=/usr/local/opt/openssl <---- THIS DEPENDS ON YOUR INSTALLATION
_ssl _ssl.c \
    -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
    -L$(SSL)/lib -lssl -lcrypto

これがopensslの場所であることを考えると

環境変数を設定する

export CFLAGS="-I$(brew --prefix openssl)/include"
export LDFLAGS="-L$(brew --prefix openssl)/lib"

作り直してインストールする

ランニング

./configure --prefix=<some_path>`
make
make install
mkvirtualenv --python=<some_path/bin/python3.6> foo

もう一度私のためにトリックをしました

11
maves

シェル出力で報告されたmakeの実行:

The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm              
_sqlite3              _ssl                  _tkinter           
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

問題を解決したもの私の場合(Linux Mint 18.1、opensslはすでにインストールされています)Python-3.6.0フォルダーのsetup.pyを編集していたそこに追加する opensslインストールが私のシステム上のssl.hファイルを置く場所へのパス(/usr/include/openssl/ssl.h)。ここで、行'/ usr/include'を追加したセクション:

    # Detect SSL support for the socket module (via _ssl)
    search_for_ssl_incs_in = [
                          '/usr/local/ssl/include/',
                          '/usr/contrib/ssl/include/',
                          '/usr/include/'
                         ]
    ssl_incs = find_file('openssl/ssl.h', inc_dirs,
                         search_for_ssl_incs_in
                         )
6
Claudio

CentOS 7のソースからPython 3.6.1をビルドするときに、同じエラーに遭遇しました。CentOS7の場合、最初に以下を行う必要がありました。

Sudo yum install openssl-dev

次に:

./configure --enable-optimizations
make altinstall

pip3.6が機能するようになりました:-)

6
Dániel Sali

Ubuntu-16.04.1でこの問題を解決しました。まず、必要なライブラリをインストールする必要があります。開いているターミナルをインストールするには(Ctrl+Alt+T)、次に入力します。

 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

その後、pythonファイルが再構成され、python3.6を再インストールするディレクトリに移動します。

 cd /opt/Python3.6/
./configure
 make 
Sudo make install

NOTE
ppa経由でPython3.6をインストールした場合は、再インストールします。

Sudo apt-get install python3.6

これで、pip3.6を使用できるはずです。

5
ozcanyarimdunya

完全なスクリプトを見つけることができます HERE

前提条件をインストールする

RHEL/CentOSの場合

Sudo yum -y install gcc gcc-c++ zlib zlib-devel libffi-devel openssl-devel wget

Ubuntu/Debianの場合

Sudo apt-get -y install build-essential python-dev python-setuptools python-pip python-smbus libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev wget

Pythonをダウンロード

必要なpythonのバージョンに合わせて変更します

Pythonバージョン

cd /var/tmp Sudo wget https://www.python.org/ftp/python/3.x.x/Python-x.x.x.tgz Sudo tar xf Python-3.*.tgz cd Python-3*

構成/作成/インストール

Sudo ./configure --enable-optimizations --enable-shared --prefix=/usr/local Sudo make && make altinstall

共有ライブラリをクリーンアップしてパスに追加

共有ライブラリのデバッグシンボルを削除すると、並列スクリプトを実行する際の実行速度が向上します。

Sudo make && make altinstall Sudo strip /usr/local/lib/libpython3.7m.so.1.0 Sudo echo 'export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib' >> /etc/profile.d/python.sh Sudo echo 'export PATH=${PATH}:~/usr/local/bin/' >> /etc/profile.d/python.sh Sudo echo '/usr/local/lib' >> /etc/ld.so.conf Sudo ldconfig

参照

0
JerodG