Python 2.5 zlib 问题

0 投票
2 回答
806 浏览
提问于 2025-04-17 02:58

我正在尝试在谷歌应用引擎上部署一个应用,这个应用是用一个叫做Bottle的微框架写的,类似于Flask。我在使用的是Ubuntu系统,里面自带了Python 2.7,但谷歌应用引擎需要的是2.5版本,所以我安装了2.5版本。然后我意识到我没有使用make altinstall命令,这可能导致了我现在的默认版本问题。不过我真正的问题是,当我尝试用谷歌应用引擎的服务器在本地测试时,出现了以下错误:

Traceback (most recent call last): 
  File "/opt/google/appengine/dev_appserver.py", line 77, in <module> 
    run_file(__file__, globals()) 
  File "/opt/google/appengine/dev_appserver.py", line 73, in run_file 
    execfile(script_path, globals_) 
  File "/opt/google/appengine/google/appengine/tools/ 
dev_appserver_main.py", line 156, in <module> 
    from google.appengine.tools import dev_appserver 
  File "/opt/google/appengine/google/appengine/tools/ 
dev_appserver.py", line 94, in <module> 
    import zlib 

ImportError: 没有名为zlib的模块

你能帮我解决这个问题吗?

2 个回答

0

在我发现只要不使用任何Python 2.5之后的语言特性或包(或者包的扩展),用Python 2.5之后的版本其实也能正常工作之前,我写了一篇关于如何在Ubuntu上安装Python 2.5的教程,可以在这里找到。这个教程里还包括了你需要的zlib部分。

现在我很高兴地在Ubuntu上使用Python 2.6.5(搭配SDK 1.5.4)进行开发。

1

你是怎么构建Python 2.5的?如果你是自己从源代码编译的,那么很有可能是因为你的系统上没有安装必要的库和头文件,导致zlib模块没有被构建出来。

在Ubuntu系统上,你需要安装zlib1g-dev这个软件包。

其他一些模块也是这样,比如如果没有合适的OpenSSL开发库和头文件,你也无法得到ssl模块。

另外,可能有人为你的Ubuntu版本提供了python2.5的软件包(不过在官方的库里,Natty和Maverick似乎都没有这个包)。

撰写回答