当我运行launch.py时它会失败,当我直接运行main.py时它会起作用。 launch.py只是导入并运行main.py.为什么呢?
├── dir
│ ├── bla.py
│ ├── __init__.py
│ └── main.py
├── __init__.py
└── launch.py
launch.py
---------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from dir import main
main.main()
main.py
-------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import bla
bla.pront()
bla.py
------
def pront():
print('pront')
编辑:
答案 0 :(得分:1)
使用您的布局和以下文件,我们没有问题。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from dir import main
if __name__ == "__main__":
main. main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
try:
from . import bla
except:
import bla
def main():
bla.pront()
if __name__ == "__main__":
main()
如果在程序包内部或外部使用 main.py ,则使用try ... except
结构。
当然,有很多关于它的信息。您可以从this开始。
答案 1 :(得分:-1)
我相信我看到了答案......
你没有定义main,也许尝试一下。直接调用它的原因是因为Python脚本按函数出现的顺序运行,除非调用特定的函数。
尝试将main.py更改为
import bla
def mainfunction():
bla.pront()
然后将launch.py更改为
import main
main.mainfunction()
我希望这有帮助! :)