我将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:Click会中止进一步的执行,因为Python 3是 配置为使用ASCII作为环境的编码。切换 到Python 2或咨询http://click.pocoo.org/python3/为
缓解措施。
在我看来,它是bash脚本。为什么我得到不同的结果?我也按照错误信息中的链接说明,但仍然没有运气。
[更新]在发布此问题之前,我已经尝试过Click提供的解决方案。检查下面的结果(我在root中运行):
[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
>>>
答案 0 :(得分:33)
如果您尝试执行测试用例,则每次必须设置以下环境变量:
export LC_ALL=en_US.utf-8
export LANG=en_US.utf-8
每次都这样做可以解决错误 如果您使用IDE,也可以在IDE中进行设置。例如,请参阅PyCharm 2016中的以下设置。
答案 1 :(得分:0)
在现有解决方案中添加更多内容:
如果您在Python 3中看到类似此错误的内容,
Traceback (most recent call last):
...
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.
您正在处理一个Python 3认为您仅限于ASCII数据的环境。这些问题的解决方案因计算机运行在哪个区域设置而异。
例如,如果您有一台德国Linux计算机,则可以通过将语言环境导出到de_DE.utf-8来解决此问题:
export LC_ALL=de_DE.utf-8
export LANG=de_DE.utf-8
如果您使用的是美国计算机,则en_US.utf-8是首选的编码。在某些较新的Linux系统上,您也可以尝试使用C.UTF-8作为语言环境:
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
答案 2 :(得分:-4)
在Python脚本的顶部,尝试放置
vertical-align