ImportError与from。在简单的python文件上导入x

Jor*_*zen 5 python-import importerror python-3.x

我想将一些代码从python 2移植到python 3,并且在导入错误时失败。因此,我尝试通过创建2个要测试的基本python文件来摆脱自身的移植并专注于导入。但是,我什至无法使它们工作。

所以我有2个档案

test.py:

print('Test works')
Run Code Online (Sandbox Code Playgroud)

和test2.py:

from . import test
Run Code Online (Sandbox Code Playgroud)

但是,结果是Pycharm中的此错误:

ImportError:无法从“ __main__”导入名称“ test”(C:/Users/Username/test2.py)

在Ubuntu Shell中:

Traceback (most recent call last): File "test2.py", line 1, in from . import test1 SystemError: Parent module '' not loaded, cannot perform relative import

How can I solve it?

小智 5

这种“文件夹结构很重要”是python3中的一个大问题。编码时您的文件夹结构应该无关紧要,但应该正确引用。

我只是根据是在本地运行还是作为模块的一部分来使用 if/else:

if __name__ == "__main__": # Local Run
    import test
else: # Module Run, When going production - delete if/else
    from . import test
Run Code Online (Sandbox Code Playgroud)


San*_*mar 1

在Python3中

测试2.py:

import test
Run Code Online (Sandbox Code Playgroud)

测试.py:

if __name__ == "__main__":
    print('Test works')
Run Code Online (Sandbox Code Playgroud)

如果你想在其他文件test2.py中打印“Test Works”

import test
test.main()
Run Code Online (Sandbox Code Playgroud)

测试.py:

def main():
    print('Test works')

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)