pip3安装在虚拟环境中,python3.6由于ssl模块不可用而失败
(py36venv)vagrant@pvagrant-dev vm:/vagrant/venvs$pip3安装pep8 pip配置了需要TLS/SSL的位置,但是Python中的SSL模块不可用 收集pep8无法获取URL 当前位置确认时出现问题 ssl证书:无法连接到HTTPS URL,因为ssl模块 不可用。-跳过 找不到满足pep8要求的版本(从 版本:)找不到pep8的匹配发行版 背景信息-正在尝试移动到python 3.6 使用以下命令安装python3.6: wget tar-xvf-Python-3.6.0.tgz cd Python-3.6.0pip3安装在虚拟环境中,python3.6由于ssl模块不可用而失败,pip,python-venv,python-3.6,Pip,Python Venv,Python 3.6,(py36venv)vagrant@pvagrant-dev vm:/vagrant/venvs$pip3安装pep8 pip配置了需要TLS/SSL的位置,但是Python中的SSL模块不可用 收集pep8无法获取URL 当前位置确认时出现问题 ssl证书:无法连接到HTTPS URL,因为ssl模块 不可用。-跳过 找不到满足pep8要求的版本(从 版本:)找不到pep8的匹配发行版 背景信息-正在尝试移动到python 3.6 使用以下命令安装python3.6: wget tar-xvf
/配置--启用优化
make-j8sudo 制作altinstall Python 3.6 通过以下方式创建virtualenv: 蟒蛇3.6-m静脉py36venv 源py36venv/bin/activate 试图安装pep8 (py36venv)管道3安装pep8 pip配置了需要TLS/SSL的位置,但是SSL Python中的模块不可用。 收集pep8 无法获取URL:出现问题 正在确认ssl证书:无法连接到HTTPS URL,因为 SSL模块不可用。-跳过找不到版本 满足pep8要求的(来自版本:)不匹配 找到pep8的分布
我按照以下步骤在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 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
在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)
当我尝试使用python3.6.0创建虚拟环境时,我也遇到了同样的问题。以下是我针对Mac OS X 10.12.2的解决方案(Py_minion评论非常接近): 安装程序 我通过以下步骤创建了环境: 下载python3.6.0 运行 解决方案 安装openssl 更改模块/设置或模块/设置.dist 您可以在下载的Python版本的目录中找到这些文件 在第209-211行中进行注释,如果需要,进行更改(我必须将SSL变量更改为我的openssl位置) 重新制作并安装 运行
./configure --prefix=<some_path>`
make
make install
mkvirtualenv --python=<some_path/bin/python3.6> foo
/configure--前缀=`
制作
安装
mkvirtualenv--python=foo
我再次在shell输出中运行make reported给我的技巧:
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
)
在CentOS 7下从源代码构建Python 3.6.1时,我遇到了相同的错误。 在过去的七个世纪里,我必须首先:
sudo yum install openssl-dev
然后:
现在pip3.6
works:-)
可以找到完整的脚本
安装先决条件
适用于RHEL/CentOS
sudo yum-y安装gcc-gcc++zlib-zlib-devel-libffi-devel-openssl-devel-wget
用于Ubuntu/Debian
sudo apt get-y安装构建基本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版本进行修改
cd/var/tmp
sudo wgethttps://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 optimization--enable shared--prefix=/usr/local
sudo make和make altinstall
清理共享库并添加到路径(&D)
在运行并行脚本时,剥离调试符号的共享库可以加快执行速度
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
sudoldconfig
参考文献
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
注意如果您通过ppa安装了Python3.6,请重新安装
sudo apt-get install python3.6
现在您应该能够使用pip3.6了,您是否安装了
libssl dev
,Makefile是否指向正确的ssl,是否在Makefile中启用了它?另请参见:未注释的以下内容-**SSL=/usr/local/SSL\u SSL.c \-DUSE\u SSL-I$(SSL)/include-I$(SSL)/include/openssl \-L$(SSL)/lib-lssl-lcrypto**如果您找到了解决方案,请随意回答您自己的问题。make-j8
中的做什么?-j[jobs],--jobs[=jobs]指定要同时运行的作业(命令)数。如果有多个-j选项,则最后一个选项有效。如果在没有参数的情况下给出-j选项,make将不会限制可以同时运行的作业数。希望对您有所帮助,有关更多信息,请参阅makeNote上的手册页:编译和安装需要相当长的时间(当然取决于您的系统)。这花了大约20分钟
# 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
)
sudo yum install openssl-dev
./configure --enable-optimizations
make altinstall
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
cd /opt/Python3.6/
./configure
make
sudo make install
sudo apt-get install python3.6