在我们的代码库中,我们有ASCII
作为默认编码,我们需要将其更改为UTF-8
,因此在每个python脚本中,我们有以下内容:
if not (sys.platform.startswith("win")):
reload(sys)
sys.setdefaultencoding('utf-8')
我希望这是一个全局脚本,所以我创建了一个并添加到所有python脚本中
Globals.py
------------------------------------------------------------------------------
import os
import sys
if not (sys.platform.startswith("win")):
reload(sys)
sys.setdefaultencoding('utf-8')
...
我们在bash_rc
中设置了一个RIGHTIMPORT
变量,它保存了我们项目的父目录,所有脚本都可以很容易地从该相对路径中找到相关文件。为了导入Globals.py
,我在每个脚本中添加了以下代码:
import os
import sys
...
# gets the RIGHTIMPORT path and adds it to PATH variable
RIGHTIMPORT = os.popen("echo $RIGHTIMPORT").read()[:-1]
IMPORT_PATH = RIGHTIMPORT + "/import/"
sys.path.insert(0, IMPORT_PATH)
# adding global constants and configurations
from Globals import *
...
由于sys
包用于将RIGHTIMPORT
插入到PATH
中,因此在从Globals
导入所有包之前导入
我的问题是在执行from Globals import *
之后sys
是否会被重新加载?我无法确认这一点,因为系统运行良好,而且由于ASCII
编码而失败的情况很少发生
谢谢
sys
将重新加载。我建议将条件更改为更经常发生的情况,放入print
语句或两个语句,然后查看是否重新加载相关问题 更多 >
编程相关推荐