Python设置编码和PYTHONPATH

简介:   Python中的编码是个恼人的问题,第一个是文件编码,在第一行设置了#-*- coding: utf-8 -*-就可以解决。 第二个是环境编码,就是你有个中文unicode的encode或decode操作,它给你报错。

 

Python中的编码是个恼人的问题,第一个是文件编码,在第一行设置了#-*- coding: utf-8 -*-就可以解决。

第二个是环境编码,就是你有个中文unicode的encode或decode操作,它给你报错。

我们最不喜欢看见这段出错信息了:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)

加入这段代码在项目入口文件开头,可以解决这个问题。

import sys
try:
    reload(sys)
    sys.setdefaultencoding("utf-8")
except AttributeError:
    pass  #没起作用

或者将这段代码放在项目根目录下的sitecustomize.py文件中。

问题是python2.5之后的版本,有时不在项目开头自动加载这个文件。纠结啊,自己定义的方式自己有时不支持。

只好在入口文件加一段,确保执行sitecustomize.py

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

#解决Python2.5之后有时无法载入sitecustomize.py的问题
import sys
import os
sys.path = [os.getcwd()] + sys.path
import sitecustomize
reload(sitecustomize)

另外关于python的搜索路径PYTHONPATH,可以用以下方式增加一个路径到其中,比如项目根目录下的library

 

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

import os.path
import sys
import site

try:
    reload(sys)
    sys.setdefaultencoding("utf-8")
except AttributeError:
    pass

base_dir = os.path.dirname(os.path.abspath(__file__))
prev_sys_path = list(sys.path)

# site.addsitedir adds this directory to sys.path then scans for .pth files
# and adds them to the path too.
site.addsitedir(os.path.join(base_dir, 'library'))

# addsitedir adds its directories at the end, but we want our local stuff
# to take precedence over system-installed packages.
# See http://code.google.com/p/modwsgi/issues/detail?id=112
new_sys_path = []
for item in list(sys.path):
  if item not in prev_sys_path:
    new_sys_path.append(item)
    sys.path.remove(item)
sys.path[:0] = new_sys_path
目录
相关文章
|
14天前
|
移动开发 Java 编译器
什么是pyc文件,把python的py文件编译成pyc文件,把pyc文件反编译成py文件。以及python编译的如何设置不生成pyc文件
什么是pyc文件,把python的py文件编译成pyc文件,把pyc文件反编译成py文件。以及python编译的如何设置不生成pyc文件
19 1
|
14天前
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
40 1
|
22天前
|
开发者 Python
Python编码风格
Python编码风格
11 1
|
11天前
|
JSON 数据库 开发者
FastAPI入门指南:Python开发者必看——从零基础到精通,掌握FastAPI的全栈式Web开发流程,解锁高效编码的秘密!
【8月更文挑战第31天】在当今的Web开发领域,FastAPI迅速成为开发者的热门选择。本指南带领Python开发者快速入门FastAPI,涵盖环境搭建、基础代码、路径参数、请求体处理、数据库操作及异常处理等内容,帮助你轻松掌握这一高效Web框架。通过实践操作,你将学会构建高性能的Web应用,并为后续复杂项目打下坚实基础。
24 0
|
18天前
|
Python Windows 内存技术
【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
|
19天前
|
NoSQL 网络安全 Redis
用python安装redis并设置服务自启
用python安装redis并设置服务自启
14 0
|
2月前
|
Python
11个提升Python列表编码效率的高级技巧
Python中关于列表的一些很酷的技巧
32 1
|
2月前
|
数据安全/隐私保护 Python
【Python】已解决:urllib模块设置代理ip
【Python】已解决:urllib模块设置代理ip
27 2
【Python】已解决:urllib模块设置代理ip
|
2月前
|
IDE 数据可视化 安全
Python学习中设置开发环境
【7月更文挑战第26天】
24 2
|
28天前
|
Linux UED iOS开发
Python colorama 设置控制台、命令行输出彩色文字
Python colorama 设置控制台、命令行输出彩色文字
20 0