基本的な問題と解決方法はこれと同じかと思います。
dyld: Library not loaded ... Reason: Image not found - stackoverflow
これを今回の問題に読み替えて手順を書きますと、
仮想環境に切替:
sh
1cd /Users/m.t./blog_django
2source myvenv/bin/activate
uwsgi
の場所を確認:
sh
1which uwsgi
2# /Users/m.t./blog_django/myvenv/bin/uwsgi
uwsgi
が使うライブラリを確認:
sh
1otool -L /Users/m.t./blog_django/myvenv/bin/uwsgi
出力例:
sh
1/Users/m.t./blog_django/myvenv/bin/uwsgi:
2 /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
3 /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
4 /opt/local/lib/libpcre.1.dylib (compatibility version 4.0.0, current version 4.13.0)
5 /opt/local/lib/libexpat.1.dylib (compatibility version 10.0.0, current version 10.1.0)
6 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1677.104.0)
7 @rpath/Python3.framework/Versions/3.8/Python3 (compatibility version 3.8.0, current version 3.8.0)
エラーメッセージにもありますが、@rpath/Python3.framework/Versions/3.8/Python3
が見つからないと言われているため、この @rpath
という動的に解決されるパスの部分を絶対パスに変更させます。
@rpath/Python3.framework/Versions/3.8/Python3
を /Applications/Xcode.app/.../3.8/Python3
に変更:
sh
1install_name_tool -change @rpath/Python3.framework/Versions/3.8/Python3 /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Python3 /Users/m.t./blog_django/myvenv/bin/uwsgi
(元に戻したいときはパスを反対にして実行するか、pip uninstall uwsgi
して pip install uwsgi
のように再インストールすればいいです)
uwsgi
のバージョンを出せればとりあえず成功です。
sh
1uwsgi --version
2# 2.0.19.1
ここでのindex.pyが僕で言うtest.pyかと思うのですが/var/www/uwsgi配下にないのではと思いました。一番最初に添付させていただいた記事ではプロジェクト直下にあるようですがどちらが正しいでしょうか?
プロジェクト直下でも、uwsgi --http :9090 --wsgi-file test.py
のようにファイルを指定して起動するので、今回の問題には直接関係はないですよ。
なお、上記の手順がよくわからず不安という場合は gunicorn
などは何もせずとも普通に動作したので、そちらをおすすめします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/23 01:02
退会済みユーザー
2021/09/23 07:33
2021/09/23 09:14