我在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?
答案 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支持。
sudo apt-get install libssl-dev
。yum install openssl-devel
。python-path/Modules/Setup.dist
,取消注释与SSL相关的内容(确保SSL变量指向您的SSL安装路径)。./configure --enable-ssl & make & make install
。