2012-06-14 25 views
0

我有一個使用CherryPy庫的python項目。我從Eclipse運行該項目。在一個虛擬機的代碼運行正常,但其他虛擬機上,完全相同的代碼給我一個錯誤在該行:使用CherryPy工具會話的錯誤

cherrypy.tools.sessions.on = True 

錯誤本身是:

File "/usr/local/lib/python2.6/dist-packages/cherrypy/_cptools.py", line 68, in _set_on 
    raise AttributeError(_attr_error) 
AttributeError: CherryPy Tools cannot be turned on directly. Instead, turn them on via config, or use them as decorators on your page handlers. 
*** glibc detected *** /usr/bin/python2.6: munmap_chunk(): invalid pointer: 0x0000000002aacee9 *** 

和回溯如下。由於代碼在另一臺機器上運行時沒有錯誤,因此我認爲這是一些配置問題,但我找不到它。

編輯我不知道它是否與我的問題有關,但我注意到,代碼運行良好的計算機上的CherryPy版本是3.1.2,而在我得到錯誤是3.2.2

編輯2我不是一個python程序員,我被迫(由情況)從離開公司的服務器人繼承代碼。很抱歉,如果我的問題非常(非常)基本。這些設置既存在於代碼中,也存在於配置文件中,並且這種方式對於3.1.2版本可以正常工作。我只是想確保在使用3.2.2版本時從代碼中刪除導致錯誤的行是安全的。

+0

我已經在我的server.conf中設置了cherrpy 3.2.2的工作正常。看起來像這樣:tools.sessions.on = True。你正在使用什麼storage_type? –

+0

storage_type是「文件」。我也有在conf文件中的設置,但它們也寫在代碼本身(見我編輯的問題) –

回答

2

錯誤消息告訴您您的代碼行無效。這取決於你想打開的會話的上下文,將它移動到config.update:

cherrypy.config.update({"tools.sessions.on": True}) 

...或配置文件:

[/path] 
tools.sessions.on = True 

...或_cp_config屬性:

class Root: 
    _cp_config = {"tools.sessions.on": True} 

有關配置聲明的更多信息,請參閱http://docs.cherrypy.org/dev/refman/_cpconfig.html#declaration

+0

謝謝,實際上這些設置已經存在於一個配置文件中,我只是想確保它是安全的刪除它們來自使用3.2.2版本的代碼(在3.2.1中,設置同時出現在代碼和conf文件中)。看我編輯的問題(編輯#2) –