我在__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编程的非常可疑的方式。我强烈建议您更改应用程序并使用其他结构。例如,根据用例导入不同的配置。