在另一个文件夹中导入python3

时间:2016-09-05 20:41:59

标签: python import module directory

当我运行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')

编辑:

enter image description here

2 个答案:

答案 0 :(得分:1)

使用您的布局和以下文件,我们没有问题。

launch.py​​

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from dir import main

if __name__ == "__main__":
   main. main()

main.py

#!/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()

我希望这有帮助! :)