2011-07-10 97 views
1

我在Linux機器上安裝cherrypy 3.2(在Ubuntu和Centos上)時遇到問題。我在機器上安裝了最新的Python和Pip(版本2.7)。在Ubuntu上,我使用$ sudo pip install cherrypy。在centos上,我是從源代碼安裝的。ImportError:安裝cherrypy時沒有名爲http.cookies的模塊3.2

後安裝完成併成功,導入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中,我失去了什麼既機我試過很乾淨,從未安裝過python 3?

+0

好的問題通過降級到Cherrypy 3.1.2解決。 – ycseattle

回答

0

對不起。我不確定到底發生了什麼問題。 CherryPy 3.2支持Python 2和3,但是爲了做到這一點,我們選擇了兩個不同的目錄,其中setup.py在兩個目錄之間切換。您的環境中的點或其他部分可能會因此而變得混亂。你應該嘗試一下簡單的「python setup.py install」。另外,CherryPy 3.2.1已經重新統一了這兩個目錄,並且應該在幾天內發佈。

2

今天我遇到了這個問題,並且在源代碼中安裝了一個新的python2.7.2安裝在centos5.6上。我驗證了運行setup.py正在使用正確的子文件夾(py2)。在通過_cpcompat.py進行挖掘時,似乎假定您擁有SSL支持,這是我自己設想的。如果您沒有SSL,那麼以下代碼行將引發導入錯誤,並從http,py3.0模塊導入。

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

要驗證這是你所看到的,請嘗試以下操作。

from httplib import HTTPSConnection 
import ssl 

如果您看到導入錯誤,可能是發生了什麼。嘗試啓用SSL支持python(谷歌可以幫助),看看是否可以解決這個問題。

希望對您有所幫助:)

+0

非常感謝!對於像我這樣在Ubuntu上的用戶,我從apt安裝了libglobus-openssl-dev,並在setup.py文件中添加了「/ usr/include/openssl /」到search_for_ssl_incs_in列表中。 –

1

您需要SSL支持。

  • 在Ubuntu上:sudo apt-get install libssl-dev
  • 分:yum install openssl-devel
  • 打開python-path/Modules/Setup.dist,取消SSL相關內容的註釋(確保SSL變量指向您的SSL安裝路徑)。
  • 重新編譯python,./configure --enable-ssl & make & make install
相關問題