我如何将此代码转换为python 3:在globals()中执行exec compile(arg,arg,“ exec”)

问题描述 投票:0回答:1

我在__init__文件中有一些代码,将一些其他__init__文件的内容附加到globals()中。

在Python 2中可以正常工作:

init_path = "/path/to/my/__init__.py"
init_file = open(init_path)
exec compile( init_file.read(), init_path, "exec" ) in globals()

如果我在python 3中运行此命令,则会得到无效的语法错误:

    exec compile( initf.read(), init_path, "exec" ) in globals()
         ^
SyntaxError: invalid syntax

所以我尝试用括号:

exec(compile(init_file.read(), init_path, "exec") in globals())

但是后来我得到了TypeError

TypeError: exec() arg 1 must be a string, bytes or code object
python python-3.x compatibility
1个回答
0
投票

这是使用Python编程的非常可疑的方式。我强烈建议您更改应用程序并使用其他结构。例如,根据用例导入不同的配置。

© www.soinside.com 2019 - 2024. All rights reserved.