2016-04-15 10 views
5

Ich habe Quokka Python/Flask CMS auf einen CentOS7-Server heruntergeladen. Alles funktioniert gut mit dem BefehlKlicken wird die weitere Ausführung abbrechen, da Python 3 so konfiguriert wurde, dass ASCII als Kodierung für die Umgebung verwendet wird.

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

Dann habe ich eine Datei /etc/init.d/quokkacms erstellen. Die Datei enthält folgenden Code

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 $? 

Aber ich Fehler, wenn sudo service quokkacms start

RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment. Either switch to Python 2 or consult http://click.pocoo.org/python3/ for
mitigation steps.

laufe es mir scheint, dass es der Bash-Skript. Wieso bekomme ich unterschiedliche Ergebnisse? Auch ich habe die Anweisungen in dem Link in der Fehlermeldung befolgt, hatte aber immer noch kein Glück.

[update] Ich hatte bereits die von Click zur Verfügung gestellte Lösung ausprobiert, bevor ich diese Frage gepostet habe. Schauen Sie sich die Ergebnisse unter (i in root ausführen):

[[email protected] 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 
>>> 
+0

Also haben Sie den Link durch die hilfreiche Fehlermeldung konsultiert? Die Antwort ist da. Ausdrücklich. –

+0

Hinweis: Das Problem ist nicht das Initskript selbst, sondern die Umgebung, in der das Skript ausgeführt wird. –

Antwort

-1

An der Spitze Ihres Python-Skript, versuchen

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

Sie sind Linux-Umgebungsvariablen – sdaffa23fdsf

12

zu setzen Wenn Sie versuchen, Tests Fall, dass Sie Muss gesetzt auszuführen die folgenden Umgebungsvariablen jedes Mal: ​​

export LC_ALL=en_US.utf-8 export LANG=en_US.utf-8 Dies wird jedes Mal den Fehler beheben.
Es kann auch möglich sein, dies in Ihrer IDE zu setzen, wenn Sie eines verwenden. Sehen Sie sich zum Beispiel die folgende Einstellung in PyCharm 2016 an. enter image description here