创建Python守护程序 - 'module'对象没有属性'DaemonContext'

Ben*_*ann 9 python python-daemon

我正在尝试守护我的应用程序并收到错误:

out:     with daemon.DaemonContext():
out: AttributeError: 'module' object has no attribute 'DaemonContext'
Run Code Online (Sandbox Code Playgroud)

看起来其他人从未安装的模块中收到此错误.作为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
Run Code Online (Sandbox Code Playgroud)

更多证据表明该模块已安装:

$ python
>>> import daemon
>>> dir(daemon)
['DaemonContext', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '_copyright', '_license', '_url', '_version', 'daemon', 'version']
Run Code Online (Sandbox Code Playgroud)

Rei*_*nen 18

我也在这个proglem上运行.如果我称之为print daemon.__file__打印/usr/local/lib/python2.6/dist-packages/daemon.pyc,这是正确的文件在错误的地方,这意味着我已经安装了错误的包装方式.

我使用了命令"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守护-package,而不仅仅是一个Python文件daemon.py.

令人困惑,但这是我自己的错.

在给出正确的安装命令sudo pip uninstall python-daemon之前,请记得调用"sudo pip uninstall daemon".


Tho*_*ers 16

产生错误的程序显然使用了一个名为的不同模块daemon.您是否可以调用程序本身或同一目录中的其他模块daemon.py?如果是这样,那么将影响已安装的daemon模块.重命名daemon.py(并删除daemon.pycPython将创建的文件),然后重试.

如果您没有看到任何阴影daemon.py,请打开您的应用程序daemon.__file__并查看从哪里导入.

  • 谢谢!我的脚本名为 daemon.py,我没有意识到这会导致问题。调用“print daemon.__file__”也非常有帮助。 (2认同)