私は sync_strategy: native_osx
で使っているのだけど人によっては sync_strategy: unison
で使っているようで、なんか起動するときにエラーが出てるそうな。
unox の中の Python がライブラリを見つけられていないようだ。
Looking for changes dyld: Library not loaded: @executable_path/../.Python Referenced from: /usr/local/Cellar/unox/0.2.0_1/libexec/bin/python3.7 Reason: image not found Fatal error: File monitoring helper program not running
で、この .Python
君はどこにあるのか調べてみると結局は Homebrew のパッケージで言うところの python@3.7
のフレームワークを見てるっぽい。
drwxr-xr-x 7 224 Oct 27 12:41 ./ drwxr-xr-x 7 224 Jun 15 21:16 ../ lrwxr-xr-x 1 70 Jun 15 21:16 .Python -> ../../../../opt/python/Frameworks/Python.framework/Versions/3.7/Python drwxr-xr-x 18 576 Jun 15 21:16 bin/ drwxr-xr-x 3 96 Jun 15 21:16 include/ drwxr-xr-x 3 96 Jun 15 21:16 lib/ -rw-r--r-- 1 61 Jun 15 21:16 pip-selfcheck.json
ただ、2020 年 10 月 26 日現在、macOS Mojave における Homebrew の python@3.7
パッケージは keg-only となっており、上記の場所は python@3.8
に置き換わっている。brew link --force python@3.7
をしたところで上記のパスにはならない(/usr/local/opt/python@3
がプレフィックスになってしまう)。シンボリックリンクを弄って python@3.7
を辿るようにしたとしても Observer
モジュールが存在しないので動かない。
Looking for changes Traceback (most recent call last): File "/usr/local/bin/unison-fsmonitor", line 24, infrom watchdog.observers import Observer ModuleNotFoundError: No module named 'watchdog' Fatal error: File monitoring helper program not running
Python@3.8 を辿るようにもしてみたがこちらもライブラリのエラーになるため Docker for Mac & docker-sync で unison にしてるのにファイルが同期されなくなったという人がちょいちょい増えてきそうな気がする。(Homebrew で upgrade をしていない人は使えるかもしれないけれど)
issue は上がっているけどいまのところ master にはマージされていない模様。そのうち取り込まれて解消されるかもしれない。
私は docker-sync 自体あまり好きではないので早く Docker for Mac に吸収されて欲しい。
私が docker-sync が嫌いなのは docker-compose のようにサービス名が親ディレクトリから拾えないため、わざわざ docker-sync.yml と docker-compose-dev.yml 内のコンテナ名称をプロジェクトごとに変えなければいけないから。(誰か良い方法を知ってたら教えて欲しい)
Linux 使ってるときはこんな面倒なこと考えなくて済むのに…。