【发布时间】:2022-11-11 19:31:17
【问题描述】:
迁移到全新安装的 Ubuntu 22(我在另一个分区中有 Ubuntu 20),最后一块我需要使用它来运行它以使 pyenv 运行良好。
尝试pyenv install x.xx.x 时失败并出现以下错误:
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
我“试图尝试”官方文档proposes:
我说“试着尝试”是因为我不明白我必须做什么。 他们给出这些命令:
CPPFLAGS="-I<openssl install prefix>/include" \
LDFLAGS="-L<openssl install prefix>/lib" \
pyenv install -v <python version>
但我不知道“openssl 安装前缀”是什么意思。我认为它是 openssl 安装目录,所以我做了:
openssl version -d
OPENSSLDIR: "/home/linuxbrew/.linuxbrew/etc/openssl@1.1"
即使我看到在这个文件夹中没有任何 include 或 lib 子文件夹,我还是通过这样做尝试了它:
CPPFLAGS="-I/home/linuxbrew/.linuxbrew/etc/openssl@1.1/include" \
LDFLAGS="-L/home/linuxbrew/.linuxbrew/etc/openssl@1.1/lib" \
pyenv install -v 3.10.0
最终得到相同的错误消息。
不得不说,我尝试了很多在其他地方找到的其他东西,但没有任何效果,但为了简单起见,我坚持使用官方指示。
如果您遇到同样的问题并且解决方案来自这些命令以外的其他地方,请分享!
非常感谢 :)
更新
<openssl install prefix> 只是指基本路径或基本文件夹,只是 Homebrew 决定发明一个新名称,因为......好吧,我猜是一些非常重要的原因。
这部分只需将<openssl install prefix> 替换为$(brew --prefix openssl) 即可解决。
请参阅我自己对以下问题的回答,了解它对我的工作方式,但从我看到和尝试的所有不同解决方案来看,每个案例都可能需要不同的解决方案。祝你好运!
【问题讨论】:
标签: python openssl pyenv ubuntu-22.04