6

我有默认安装 Python 2.6 的 Karmic Koala。

但是我无法运行任何 Python App Engine 项目,因为它们需要 Python 2.5 和 python ssl。

要安装 ssl,我首先安装了 python2.5-dev,同时按照我在其他地方找到的一些说明进行操作。

sudo apt-get install libssl-dev
sudo apt-get install python-setuptools
sudo apt-get install python2.5-dev 
sudo easy_install-2.5 pyopenssl

但是,我担心这对我的 Ubuntu 安装不利,因为当您在命令行上键入“python”时,Ubuntu 期望看到 Python 2.6 版本。相反,它说“2.5.5”。

但是 App Engine 在这一切之后仍然无法工作。每当我尝试运行我的 Python 应用程序时,我都会继续收到与 SSL 相关的错误:

AttributeError: 'module' object has no attribute 'HTTPSHandler'

UPDATE1:刚刚通过键入以下命令检查了 SSL 是否实际安装为这些命令的结果:

$ python2.5
Python 2.5.5 (r255:77872, Apr 29 2010, 23:59:20) 
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named ssl
>>> 

如您所见,仍然没有安装 SSL,这解释了 App Engine 持续出现的错误。

更新2:

我尝试通过执行以下操作恢复到 Python 的原始默认版本:

sudo ln -s /usr/bin/python2.6 python

在我的/usr/bin/local文件夹中。

现在,当我在命令行上键入“python”时,我得到了 Python 2.6.4。

但这并不能解决我的 App Engine SSL 问题。

如果有人知道我怎样才能把自己从这个洞里挖出来,我将不胜感激。

4

2 回答 2

2

您应该能够简单地安装 Ubuntu 的 Python 2.5 标准副本。SSL 模块不是必需的 - 正如警告消息所说,如果您想要进行证书验证,这是必要的,但仅此而已。

缺少“HTTPSHandler”时出现的错误可能是由于安装了在没有 SSL 支持的情况下编译的 Python 版本(这与 ssl模块无关,这就是证书验证的作用) - 再次尝试安装标准版本。

就版本选择而言,安装 Python 2.5 不应干扰默认系统版本 - 有一个选择器工具用于选择哪个版本是默认版本 - 因此您可以简单地使用“python2.5 dev_appserver.py”运行 dev_appserver 等。

于 2010-05-01T08:50:03.190 回答
2

在 Ubuntu 9.10 上,一个简单的方法sudo aptitude install python2.5应该可以解决问题,然后只需通过 prepending 调用脚本python2.5,如下所示:

python2.5 google_appengine/dev_appserver.py ...

然而,在 Ubuntu 10.04 上,这完全不同,因为 Python 2.5 不再在存储库中......这意味着从源代码安装,并且不得不这样做,我可以告诉你这并不好笑。它只是让您希望 Google 会继续处理问题 757

为 Python 2.5 安装 SSL 支持是相同的,无论是从 repos 安装还是从源代码编译。只需下载2.5 的 SSL 库,解包,然后运行

sudo python2.5 setup.py install

编辑:先前引用的问题的 评论 51详细解释了如何在 Ubuntu 10.04 上安装 Python 2.5。如您所见,这真的很麻烦!

于 2010-05-02T19:50:29.890 回答