两个问题,相互没多大关系,但是遇到了,一起记录一下
python3
打印中文报错UnicodeEncodeError
:毫无疑问编码的问题。网上的方法都大概试了试 其中 1. sys reload()
在python3
已经不支持,使用了也会报错。 2. PYTHONIOENCODING=utf-8 python your_script.py
有效但是可以用来调试,但是项目后台启动没法用,还有其他的加声明的试了都无效。 原因:是Linux
默认编码是ANSI_X3.4-1968
的问题。
解决方式:
方法一:在python代码中更改sys.stdout
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
方法二:修改系统环境变量
<pre class="line-numbers" data-start="1" prism-highlight="">```python
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
我用的第二种,完美解决 - - - - - -
第二个问题,pm2
启动python3
的问题。pm2
是什么不做过多介绍了,通常用来启动nodejs
项目,但是他的功能不仅仅如此,比如我们可以用来启动python项目。 但是,默认pm2 start xxx.py
会调用系统命令python,所以调用的是系统自带的python2.7
,那怎么通过python3
来启动python
项目呢。 pm2
启动有一个参数--interpreter
可以指定解释器。那么我们就可以用这样的命令来启动:
pm2 start xxx.py --interpreter python3
ok,完美解决。