2012-03-20 96 views
7

我想守護進程我的應用程序,並正在錯誤:創建Python的守護 - 「模塊」對象有沒有屬性「DaemonContext」

out:  with daemon.DaemonContext(): 
out: AttributeError: 'module' object has no attribute 'DaemonContext' 

它看起來像其他人都從模塊收到此錯誤未安裝。作爲Python的新手,有一個守護進程和python-daemon包,還有兩種安裝python包的方法(sudo apt-get install和sudo pip install),有點令人困惑。但是,似乎我已經安​​裝了該軟件包。我在Ubuntu 10.04上安裝了Python 2.6。有任何想法嗎?

它看起來像我已經安裝了模塊:

# pip freeze 
LEPL==5.0.0 
MySQL-python==1.2.2 
distribute==0.6.10 
lockfile==0.8 
matplotlib==0.99.1.1 
numpy==1.3.0 
pyparsing==1.5.2 
python-apt==0.7.94.2ubuntu6.4 
python-daemon==1.5.2 
python-dateutil==1.4.1 
pytz==2010b 
rpy2==2.0.8 
wsgiref==0.1.2 

更多的證據將模塊安裝:

$ python 
>>> import daemon 
>>> dir(daemon) 
['DaemonContext', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '_copyright', '_license', '_url', '_version', 'daemon', 'version'] 
+4

我也有這個問題,但事實證明我做了'PIP2的時候我應該安裝daemon'已經完成了'pip2 install python-daemon',它解決了我的問題 – kristianlm 2013-07-19 09:51:01

回答

14

產生顯然是使用名爲daemon一個不同模塊錯誤的程序。您是否可能會將該程序本身或其他模塊稱爲daemon.py?如果是這樣,則會影響安裝的daemon模塊。重命名daemon.py(並刪除Python將創建的daemon.pyc文件)並重試。

如果您沒有看到任何影子daemon.py,請讓您的應用程序打印daemon.__file__並查看它從哪裏導入。

+1

謝謝!我的腳本被命名爲daemon.py,我沒有意識到這會導致問題。調用「print daemon .__ file__」也非常有用。 – 2012-03-21 00:34:42

15

我也在這個proglem上運行。如果我撥打print daemon.__file__,它會打印/usr/local/lib/python2.6/dist-packages/daemon.pyc,這是錯誤位置的正確文件,這意味着我已經安裝了packege錯誤的方式。

我使用了命令「sudo pip install daemon」,它只安裝daemon.py文件。我們應該使用commnd 「sudo pip install python-daemon」,它會安裝整個軟件包。之後print daemon.__file__打印/usr/local/lib/python2.6/dist-packages/daemon/__init__.pyc,這意味着我已經安裝了python-daemon-packages,而不僅僅是一個python文件daemon.py。

令人困惑,但這是我自己的錯。

記住給予正確的安裝命令:sudo PIP卸載蟒蛇守護」之前調用「命令PIP卸載守護進程」。

相關問題