一只特立独行的猪 一只特立独行的🐷
一只特立独行的🐷
  • 主页
  • web开发
  • 博客笔记
  • 软件工具
  • 随笔杂谈
  • 文章归档
  • 影音欣赏
  • 我的资源
  • 关于我
  • wechat_fill

解决python3打印中文报错UnicodeEncodeError以及pm2启动python3项目的问题

  • 2018-04-08
  • Web开发
  • 评论(0)

两个问题,相互没多大关系,但是遇到了,一起记录一下

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,完美解决。

Powered by Wordpress, Theme by Wing-magic
©2023 一只特立独行的🐷 All rights reserved
陕ICP备15006707号-5