在使用Python3.6的虚拟环境中,由于SSL模块不可用,pip3安装失败。

13 浏览
0 Comments

在使用Python3.6的虚拟环境中,由于SSL模块不可用,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证书时出现问题:无法连接到HTTPS URL,因为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

创建虚拟环境:

python3.6 -m venv py36venv

source 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。

0
0 Comments

在尝试使用python3.6.0创建虚拟环境时,我遇到了与ssl模块不可用相关的问题。下面是我在Mac OS X 10.12.2上的解决方案(Py_minion的评论非常接近):

设置

我通过以下步骤创建了环境:

1. 下载python3.6.0

2. 运行以下命令:

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

基本上与这个链接中的方法类似:https://stackoverflow.com/a/11301911/1286093

如果运行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"

重新运行make和make install

再次运行以下命令:

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

对于那些没有sudo和brew的用户,可以从openssl.org获取openssl。

0
0 Comments

在使用Python3.6的虚拟环境中运行pip3 install命令时出现了SSL模块不可用的错误。错误信息显示需要构建这些可选模块所需的必要组件未找到,其中包括_bz2、_dbm、_gdbm、_sqlite3、_ssl和_tkinter等模块。解决此问题的方法是在Python-3.6.0文件夹下的setup.py文件中添加openssl安装路径中的ssl.h文件所在的路径(/usr/include/openssl/ssl.h)。在setup.py文件的搜索SSL支持的部分中,添加了'/usr/include'路径。经过尝试后,发现此方法可以解决该问题。

0
0 Comments

在Ubuntu14.04上安装Python3.6和虚拟环境pip安装工作正常。如果出现以下错误-- "zipimport.ZipImportError: can't decompress data; zlib not available make: *** [altinstall] Error 1",可以尝试安装zlib1g-dev解决该问题。创建Python3.6的虚拟环境并使用pip安装pep8,安装成功后可以通过pip list命令查看已安装的包。

0