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

2024-04-25 14:13:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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是针对python 3的,我是否遗漏了什么,因为我尝试的两台机器都是干净的,而且没有安装python3?


Tags: inimport机器httpubuntulibpackagesusr
3条回答

今天我在centos5.6上的一个新的python2.7.2版本中也遇到了这个问题。我验证了运行setup.py是否使用了正确的子文件夹(py2)。在深入研究cpcompat.py时,似乎假定您有SSL支持,这是我自己假设的。如果您没有SSL,那么下面的行将抛出一个导入错误,并从py3.0模块http导入。

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

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

from httplib import HTTPSConnection
import ssl

如果您看到导入错误,这可能就是发生的情况。尝试启用对python的SSL支持(google可以提供帮助),看看这是否解决了问题。

希望有帮助:)

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

您需要SSL支持。

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

相关问题 更多 >