python - 如何在 Python 2.5.1 的备用安装中启用 OpenSSL 支持?

标签 python openssl importerror

一些背景信息:
我正在尝试在 python 2.5.1(服务器编写和测试的版本)中运行服务器程序。该程序需要 OpenSSL 库来实现其某些功能。我从源代码安装了 python 2.5.1,因为我运行的 Amazon Linux 实例的 yum 存储库没有我需要的 python 版本。

当我尝试使用 python 2.5.1 运行服务器时,出现以下导入错误:

Traceback (most recent call last):  
File "<stdin>", line 1, in <module>  
ImportError: No module named OpenSSL

我知道 OpenSSL 库已安装,因为我可以将它们导入 Python 2.6(由 yum 安装的 python 版本)。只是我的 python 2.5.1 安装看不到它们。

我还通过 yum 安装了 pyOpenSSL,但没有成功。

最佳答案

安装的Python库特定于特定版本。因此,您从 yum 安装的 pyOpenSSL 将用于系统 python。您需要为替代安装的 2.5 python 安装一个单独的 pyOpenSSL 实例。

如果您使用 python2.5 安装 distutils,那么您会发现您有一个可以使用的 easy_install-2.5:easy_install-2.5 pyopenssl (或类似的)。但请注意,还可能安装新版本的 easy_install,覆盖系统 python 的现有版本(如果有的话)。要将 distutils 与现有包一起使用,请使用 easy_install-2.7 (如果是 python 2.7)。

这有道理吗?基本上,每个 python 都是不同的,并且需要自己的一组库。相比之下,easy_install是全局安装的,但是每个python都有一个特定于版本的easy_install副本......!

如果你想避免 easy_install 带来的困惑,你可以使用 virtualenv。为 2.5 创建一个新环境,启用它,然后您可以在其中安装 pyopenssl (使用环境中的 easy_install )。如果您从未使用过 virtualenv,这听起来可能会更复杂,但如果您花一点时间来理解它,从长远来看可能会效果更好。

关于python - 如何在 Python 2.5.1 的备用安装中启用 OpenSSL 支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882720/

相关文章:

python - 在 pandas 数据框列名称中插入列表

c++ - OPENSSL 将二进制字节转换为 SHA256 C++

python - 为什么我收到 "ImportError: No module named threaded"消息?

python - 为什么在重新使用打开的端口之前会出现一段时间延迟?

python - 了解 `pylab.legend` 的默认用法

node.js - Nodejs 请求带有 .p12 证书的 Web 服务

php - 如何在 fedora 中为 Laravel 安装启用 OpenSSL

python - ImportError:无法在 Keras 中导入名称 '_ccallback_c'

python - 单元测试和多个模块的 ImportError

python - `numpy.random.multivariate_normal` 的向量化实现