",Python HTTPS 下载失败-6ren"> ",Python HTTPS 下载失败-本题基于Python HTTPS download fails due to ""我可以在其中解决构建错误 进入 . 我正在尝试在一个非常小的系统(Ubuntu 16.04 docker 镜像)上从源-6ren">
gpt4 book ai didi

由于 "",Python HTTPS 下载失败

转载 作者:太空宇宙 更新时间:2023-11-03 13:33:00 24 4
gpt4 key购买 nike

本题基于Python HTTPS download fails due to "<urlopen error unknown url type: https>"我可以在其中解决构建错误 <urlopen error unknown url type: https>进入<urlopen error [SSL: NO_CIPHERS_AVAILABLE] no ciphers available (_ssl.c:661)> .

我正在尝试在一个非常小的系统(Ubuntu 16.04 docker 镜像)上从源代码构建一个 Python 2.7,它不会由于 <urlopen error [SSL: NO_CIPHERS_AVAILABLE] no ciphers available (_ssl.c:661)> 而导致 HTTPS 下载失败。 .我不想使用包管理器和预构建的 docker 镜像,但我知道这可以轻松解决问题。

构建脚本是

apt-get update && apt-get install --yes wget xz-utils make gcc patch && rm -rf /var/lib/apt/lists/*
wget http://www.cpan.org/src/5.0/perl-5.26.1.tar.gz && tar xf perl-5.26.1.tar.gz && cd perl-5.26.1 && ./configure.gnu && make -j16 && make install && cd .. && rm perl-5.26.1.tar.gz
wget https://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.8.1.tar.xz && tar xf gettext-0.19.8.1.tar.xz && cd gettext-0.19.8.1 && ./configure && make -j16 && make install && cd .. && rm gettext-0.19.8.1.tar.xz
wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xf zlib-1.2.11.tar.gz && cd zlib-1.2.11 && ./configure && make -j16 && make install && cd .. && rm zlib-1.2.11.tar.gz
wget https://www.kernel.org/pub/software/scm/git/git-2.13.3.tar.gz && tar xf git-2.13.3.tar.gz && cd git-2.13.3 && ./configure --with-perl=/usr/local/bin/perl && make -j16 && make install && cd .. && rm git-2.13.3.tar.gz
# need `--with-perl` passed to `configure` because the `/usr/local/bin/perl` isn't picked up regardless where it's found in PATH, see https://stackoverflow.com/questions/48931247/cant-locate-extutils-makemaker-pm-in-inc-during-git-build for details
wget https://www.openssl.org/source/openssl-1.1.1-pre1.tar.gz && tar xf openssl-1.1.1-pre1.tar.gz && rm openssl-1.1.1-pre1.tar.gz
wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz && tar xf Python-2.7.14.tgz && rm Python-2.7.14.tgz
git clone git://git.gnome.org/jhbuild
cp -a /openssl-1.1.1-pre1 . && cd openssl-1.1.1-pre1 && ./config --prefix=/usr/local/ --openssldir=/usr/local && make -j16 && make install && cd ..
# need to install into explicit prefix different from `/usr/local` in order to make OpenSSL get picked up by Python's patched `configure` (specifying `OPENSSL_ROOT=/usr/local` doesn't work)
ldconfig
# avoids `./python: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory` during build of Python
cp -a /Python-2.7.14 . && cd Python-2.7.14 && wget https://gist.githubusercontent.com/rkitover/2d9e5baff1f1cc4f2618dee53083bd35/raw/7f33fcf5470a9f1013ac6ae7bb168368a98fe5a0/python-2.7.14-custom-static-openssl.patch && patch -p1 <python-2.7.14-custom-static-openssl.patch && patch -u -p0 <../setup.patch && cp Modules/Setup.dist Modules/Setup && env OPENSSL_ROOT=/usr/local ./configure && make -j16 && make install && cd ..
cp -a /jhbuild . && cd jhbuild && ./autogen.sh --prefix=/usr/local && make && make install && cd ..
env JHBUILD_RUN_AS_ROOT= jhbuild bootstrap

我选择了jhbuild bootstrap作为测试命令,因为这是期望的结果,请随时提出更好的建议。这个构建脚本看起来很奇怪,因为我提取了一个 Docker 镜像 krichter/ubuntu-git可在 https://gitlab.com/krichter/ubuntu-git 获得.

我在 https://gitlab.com/krichter/jhbuild-docker-build 创建了一个 SSCCE它允许在 GitLab CI 中运行构建脚本,并且可以在 https://gitlab.com/krichter/jhbuild-docker-build/-/jobs/53978734 调查包括完整构建日志的示例运行。 .

最佳答案

为了在 Mac OSX 上克服这个错误(以及随后的其他错误),我使用 Anaconda3 创建了一个 python2.7 环境并安装了 jhbuild 依赖项(python2.7 模块):

conda create -n py2 python=2.7
conda activate py2
conda install openssl xz gettext autoconf automake libtool m4 zip zlib
alias python2=python

如果您只是想克服您遇到的 SSL 错误,您只需确保您的 python --versionpython2 --version 都是 2.7。然后你需要在那个 python 中安装最新的 openssl,例如conda 安装 openssl。我还没有尝试过 pip install --upgrade openssl 但也许这也能奏效。

关于由于 "<urlopen error [SSL: NO_CIPHERS_AVAILABLE] no ciphers available (_ssl.c:661)>",Python HTTPS 下载失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48941028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com