从全局python脚本重新加载包

2024-03-29 11:30:21 发布

您现在位置:Python中文网/ 问答频道 /正文

在我们的代码库中,我们有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编码而失败的情况很少发生

谢谢


Tags: path代码import脚本编码ifossys