从全局python脚本重新加载包

时间:2013-11-23 16:43:41

标签: python python-2.6

在我们的代码库中,我们将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')
...

我们在RIGHTIMPORT中设置了bash_rc变量,该变量包含项目的父目录,所有脚本都可以轻松地从该相对路径中找到相关文件。因此,为了导入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吗?我实际上无法确认它,因为系统工作正常,并且因为{{1}}编码很少发生而导致失败。

由于

1 个答案:

答案 0 :(得分:1)

sys将重新加载。我建议将条件更改为更频繁发生的事情,放入print语句或两个,并查看是否重新加载。