您现在的位置是:首页 > 技术笔记 网站首页技术笔记

No18:Python常见问题汇总

Python  
简介Python编程时遇到过一些问题,整理了以下内容,含解决办法。

1、SyntaxError: Non-ASCII character '\xe4' in file

文件中出现了中文,且没有编码声明,Python2将默认以ASCII作为标准编码,而Python2支持的ASCII码无中文。

解决方法:

必须在文件中第一行声明文件编码

# -*- coding: utf-8 -*-

2、UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range

此问题常见于Python2环境中。

解决方法:

import sys

# Python2.x
reload(sys)
sys.setdefaultencoding("utf8")

3、Python2写文件中文乱码

Python2中open方法是没有encoding这个参数的,如果像python3一样的写法会报异常:

TypeError: ‘encoding’ is an invalid keyword argument for this function

解决方法:

import io

test_1 = "中文"
with io.open("test.txt", "w", encoding="utf-8") as f:
    f.write(unicode(test_1, "utf-8"))

with open("test.txt", "r") as f:
    test_2 = unicode(f.read(), "utf-8")

4、Mac上PyCharm运行多进程报错的解决方案

运行时报错运行时报错

may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.

解决方案

添加环境变量:

点击窗口上的Run->Edit Configurations...->Environment variables->点击输入栏后的文件夹图标

添加内容:

key: OBJC_DISABLE_INITIALIZE_FORK_SAFETY, value: YES

完整示例:

OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES