タイトルのとおり、コメントアウトされたコードは機能しますが、Pathlibを使用すると不正な命令が表示されます。4。ターミナルへのパスを印刷すると、パスが正しく設定されていることが示され、observer.schedule行をコメントアウトすると、エラーなしでプログラムが実行されます。
class ObserverLoop:
def __init__(self):
self.folder = Path("~/Desktop")
print(self.folder.expanduser())
# self.working_path = os.path.abspath(os.path.expanduser("~/" + "/Desktop/"))
self.working_path = self.folder.expanduser()
print(self.working_path)
self.event_handler = MonitorFolderChanges(self.working_path)
def start_loop(self):
tf.key = secrets.api_key
observer = Observer()
observer.schedule(self.event_handler, self.working_path, recursive=False)
observer.start()
try:
while observer.is_alive():
observer.join(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
ウォッチドッグのどのバージョンですか?
最新バージョン0.10.2だと思います。
最新の0.10.3で試してみてください。 パスのようなオブジェクトをサポートするための修正が含まれています(https://github.com/gorakhargosh/watchdog/releases/tag/v0.10.3を参照)。
解決策をありがとう、そして返信の遅れをお詫びします。 この問題の主な理由は、 brew upgrade
しようとしたときに、最新バージョンが提供されなかったことです。