PyramidでuWSGIをセットアップしようとしていますが、uwsgi --ini-paste development.ini
を試行すると、このエラーが発生します
Python version: 3.2.3
エラーメッセージ:
uwsgi socket 0 bound to UNIX address /tmp/uwsgi.sock fd 3
Python version: 3.2.3 (default, Oct 19 2012, 20:08:46) [GCC 4.6.3]
Set PythonHome to /root/path/to/virtualenv
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named encodings
これが私がdevelopment.iniに持っているものです
[uwsgi]
socket = /tmp/uwsgi.sock
master = true
processes = 4
harakiri = 60
harakiri-verbose = true
limit-post = 65536
post-buffering = 8192
daemonize = ./uwsgi.log
pidfile = ./pid_5000.pid
listen = 256
max-requests = 1000
reload-on-as = 128
reload-on-rss = 96
no-orphans = true
log-slow = true
virtualenv = /root/path/to/virtualenv
私は以下を含む可能な限りすべてをチェックしたと思います
echo LANG:$LANG LC_CTYPE:$LC_CTYPE
LANG:en_US.UTF-8 LC_CTYPE:
私はvirtualenvを使用していて、環境がアクティブなときにuWSGIがインストールされました。私の仮想環境のlibにencodingという名前のパッケージがあることも確認しました(メインのpython3.2インストールをポイントしています)
私は以前virtualenvがアクティブでないときにuWSGIをインストールしていましたが、それを適切にインストールし、以前のインストールから実行可能ファイルとpyファイルを削除しました。
詳細なログを取得する方法はありますか。ある場合はお知らせください。前もって感謝します
私の場合、それは基本的にpython 2.7をメインインタープリターとして使用し、uwsgiがpyhon3プラグインを選択したためです。
plugins = python32
どこ python32
は、pythhon3プラグインの適切な名前です。
これを確認しましたか: wsgi python3プラグインが機能しません ?
それを確認します
virtualenv = /root/path/to/virtualenv
正しいパスを指します。このタイプミスしたパスを修正することでエラーを解決しました。
今日もこの問題に遭遇し、plugins=python34
を設定しようとしましたが、Ubuntu 14.04およびPython 3.4.3では機能しませんでした。
これは私がそれを修正するためにしたことです:
Sudo pip uninstall uwsgi
Sudo pip install uwsgi
を実行すると問題が発生し、これを最初に実行します。
Sudo apt-get install python-dev
(Sudo)pip install uwsgi
ちょうど同じ問題がありました。その後気付いたのは、virtualenvにpip install uwsgi
を使用してuwsgiをインストールしたことです。 virtualenvを終了したら、pip3 install uwsgi
を使用してローカルシステムにuwsgiをインストールしました(pip3ではなくpipを作成したことに注意してください)。そのため、pip3 uninstall uwsgi
でアンインストールし、pip install uwsgi
で繰り返しました。チャームのように働いた。
次の行のようにuwsgiコマンドを(オプションを指定して)実行します。
/<path-to-your-virtualenv-bin>/uwsgi --http :8008 --module project.wsgi --venv /<path-to-your-virtualenv> --chdir /<path-to-your-project>
あなたは問題を見つけるでしょう。
あなたはあなたのモジュールパラメータを見逃しましたか?
同様のエラーメッセージが表示されましたが、pythonバージョンのバリエーションが含まれています。
Python version: 3.4.3 (default, Nov 28 2017, 16:44:58) [GCC 4.8.4]
これはpython3.6仮想環境を使用しようとしたことから生じましたが、uwsgiはpython3.4用にセットアップされています。私はpython3.4を使用して仮想環境を再セットアップしましたが、すべて順調でした。
エドワードの答え に基づいて、代わりにuWSGI
をpip3.6
ではなくpip3
で再インストールしました、Python 3.4.8はデフォルトPython 3 on the server:
$ python3 --version
Python 3.4.8
virtualenv
のパスを確認してください。次のようなものを使用していないことを確認してください:~/.virtualenvs/xxx
。
~
記号は、ユーザーのホームディレクトリを指します。したがって、ユーザーが異なれば、このパスは異なる位置を参照します。
確信が持てない場合は、virtualenv
を/home/.virtualenvs
などの場所に移動してください。
同様の問題がありました。私の場合、問題はuwsgi.ini
のuid
、guid
paramsにありました。 www-data
ユーザーには、virtualenvでpythonを実行する権限がありませんでした。