54

Quokka Python/Flask CMS を CentOS7 サーバーにダウンロードしました。すべてがコマンドで正常に動作します

sudo python3 manage.py runserver --host 0.0.0.0 --port 80

次に、ファイル /etc/init.d/quokkacms を作成します。ファイルには次のコードが含まれています

start() {
        echo -n "Starting quokkacms: "
        python3 /var/www/quokka/manage.py runserver --host 0.0.0.0 --port 80
        touch /var/lock/subsys/quokkacms
        return 0
}
stop() {
        echo -n "Shutting down quokkacms: "
        rm -f /var/lock/subsys/quokkacms
        return 0
}
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)

        ;;
    restart)
        stop
        start
        ;;

    *)
        echo "Usage: quokkacms {start|stop|status|restart}"
        exit 1
        ;;
esac
exit $?

しかし、実行時にエラーが発生しますsudo service quokkacms start

RuntimeError: Python 3 は環境のエンコーディングとして ASCII を使用するように構成されているため、Click はそれ以降の実行を中止します。軽減策については、Python 2 に切り替えるか、http://click.pocoo.org/python3/を参照してください

それはbashスクリプトのようです。異なる結果が得られるのはなぜですか? また、エラー メッセージのリンクの指示に従いましたが、まだうまくいきませんでした。

[更新] この質問を投稿する前に、Click が提供するソリューションを既に試していました。以下の結果を確認してください(私はルートで実行しています):

[root@webserver quokka]# python3
Python 3.4.3 (default, Jan 26 2016, 02:25:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> import codecs
>>> print(locale.getpreferredencoding())
UTF-8
>>> print(codecs.lookup(locale.getpreferredencoding()).name)
utf-8
>>> locale.getdefaultlocale()
('en_US', 'UTF-8')
>>> locale.CODESET
14
>>>
4

2 に答える 2

97

テスト ケースを実行しようとしている場合は、毎回次の環境変数を設定 する必要があります。

export LC_ALL=en_US.utf-8
export LANG=en_US.utf-8

毎回これを行うと、エラーが解決されます。

IDE 実行構成でこれを次のように設定することも可能です。

LC_ALL=en_US.UTF-8;LANG=en_US.UTF-8

たとえば、PyCharm 2016 の次の設定を参照してください。

于 2016-06-16T20:10:20.683 に答える