0
私は、このスクリプトでエラーが発生します。Pythonのデーモンライブラリのインポートエラー
Traceback (most recent call last):
File "dtest2.py", line 5, in <module>
class MyDaemon(Daemon):
NameError: name 'Daemon' is not defined
は私が間違って何をやっている:
#!/usr/bin/env python
import sys, time, daemon
class MyDaemon(Daemon):
def run(self):
while True:
time.sleep(1)
if __name__ == "__main__":
daemon = MyDaemon('/tmp/daemon-example.pid')
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
daemon.start()
elif 'stop' == sys.argv[1]:
daemon.stop()
elif 'restart' == sys.argv[1]:
daemon.restart()
else:
print("Unknown command")
sys.exit(2)
sys.exit(0)
else:
print("usage: %s start|stop|restart" % sys.argv[0])
sys.exit(2)
それは次のエラーを生成しますか?私は 'sudo pip install daemon'でデーモンをインストールしました。
UPDATE:@DeepSpaceからアドバイスを以下の私はにコードを変更しました:
#!/usr/bin/env python
import sys, time, daemon
class MyDaemon(daemon.Daemon):
def run(self):
while True:
time.sleep(1)
if __name__ == "__main__":
daemon = MyDaemon('/tmp/daemon-example.pid')
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
daemon.start()
elif 'stop' == sys.argv[1]:
daemon.stop()
elif 'restart' == sys.argv[1]:
daemon.restart()
else:
print("Unknown command")
sys.exit(2)
sys.exit(0)
else:
print("usage: %s start|stop|restart" % sys.argv[0])
sys.exit(2)
...それは
Traceback (most recent call last):
File "dtest.py", line 3, in <module>
import sys, time, daemon
File "/usr/local/lib/python3.6/site-packages/daemon.py", line 70
os.umask(022) # Don't allow others to write
^
SyntaxError: invalid token
任意の提案を別のエラーを生成しますか?
いずれも違いはありません。あなたのアドバイスに従ってインポート文を変更し、クラスMyDaemon(daemon)をクラスMyDaemon(daemon.Daemon)に変更しようとしました。私は 'ImportError:No module daemon'を取得します。私は何が間違っているのですか? – alkopop79
@ alkopop79あなたはどちらかを変更してください。最新のコードと最新のエラーが含まれるように質問を更新してください。 **また、**あなたのスクリプトの名前が万一daemon.pyでないことを確認してください。 – DeepSpace