12

アプリをデーモン化しようとしていますが、次のエラーが発生します。

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

モジュールがインストールされていないために、他の人がこのエラーを受け取っているようです。Python の初心者として、daemon と python-daemon パッケージがあり、python パッケージをインストールする方法が 2 つあること (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

3 に答える 3

21

私もこのプログラムで実行しています。これは正しいファイルが間違った場所にあるということで、パッケージを間違った方法でインストールしたことを意味しprint daemon.__file__ます。/usr/local/lib/python2.6/dist-packages/daemon.pyc

daemon.py ファイルのみをインストールするコマンド「sudo pip install daemon」を使用しました。パッケージ全体をインストールするコマンド「sudo pip install python-daemon」を使用する必要があります。その後、 がprint daemon.__file__ 出力/usr/local/lib/python2.6/dist-packages/daemon/__init__.pycされます。これは、1 つの python ファイル daemon.py だけでなく、python-daemon -package をインストールしたことを意味します。

紛らわしいですが、それは私自身のせいでした。

正しいインストール コマンド sudo pip uninstall python-daemon を実行する前に、忘れずに「sudo pip uninstall デーモン」を呼び出してください。

于 2013-08-18T15:48:48.700 に答える
20

エラーを生成するプログラムは、明らかに という名前の別のモジュールを使用していますdaemon。おそらくプログラム自体、または同じディレクトリ内の別のモジュールを呼び出しましたdaemon.pyか?

daemonもしそうなら、それはインストールされたモジュールをシャドーします。

ソリューション

名前を変更daemon.pyして (そしてdaemon.pycPython が作成するファイルを削除して)、再試行してください。

シャドウイングが何も表示されない場合はdaemon.py、アプリケーションを印刷daemon.__file__して、どこからインポートされているかを確認してください。

于 2012-03-21T00:16:42.757 に答える