ImportError:安装cherrypy 3.2时没有名为http.cookies的模块错误

时间:2011-07-10 18:33:49

标签: python cherrypy

我在Linux机器上安装cherrypy 3.2时遇到了问题(在Ubuntu和Centos上都有)。我在机器上安装了最新的Python和Pip(2.7版)。在Ubuntu上,我使用$ sudo pip install cherrypy。在centos上,我是从源代码安装的。

安装完成并成功后,导入cherrypy模块时,出现错误:

>>> import cherrypy
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "/usr/local/lib/python2.7/site-packages/cherrypy/__init__.py", line 62, in <module>
     from cherrypy._cpcompat import urljoin as _urljoin, urlencode as _urlencode
   File "/usr/local/lib/python2.7/site-packages/cherrypy/_cpcompat.py", line 184, in <module>
     from http.cookies import SimpleCookie, CookieError
ImportError: No module named http.cookies
>>> 

我查了一下文档,似乎http.cookies是for python 3,我错过了什么,因为我试过的两台机器都很干净而且从来没有安装过python 3?

3 个答案:

答案 0 :(得分:2)

我今天也遇到了这个问题,并从centos5.6上的源代码中全新安装了python2.7.2。我验证运行setup.py正在使用正确的子文件夹(py2)。在挖掘_cpcompat.py时,似乎假设您拥有SSL支持,我自己就是这样。如果您没有SSL,则以下行会引发导入错误并从http(py3.0模块)导入。

from httplib import BadStatusLine, HTTPConnection, HTTPSConnection, IncompleteRead, NotConnected

要验证这是您所看到的,请尝试以下操作。

from httplib import HTTPSConnection
import ssl

如果您看到可能正在发生的导入错误。尝试为python启用SSL支持(谷歌可以提供帮助),看看是否能解决问题。

希望有所帮助:)

答案 1 :(得分:1)

很抱歉。我不确定到底出了什么问题。 CherryPy 3.2支持Python 2和3,但为了做到这一点,我们选择了两个不同的目录,setup.py之间切换。 pip或你环境的其他部分可能因此而感到困惑。你应该尝试一个简单的“python setup.py install”来确定。此外,CherryPy 3.2.1重新统一了两个目录,应该会在几天内发布。

答案 2 :(得分:1)

您需要SSL支持。

  • on ubuntu:sudo apt-get install libssl-dev
  • on centos:yum install openssl-devel
  • 打开python-path/Modules/Setup.dist,取消注释与SSL相关的内容(确保SSL变量指向您的SSL安装路径)。
  • 重新编译python,./configure --enable-ssl & make & make install