无法从不同的文件夹-python导入模块

时间:2017-06-12 18:17:49

标签: python

这是我的代码的结构:

---root-dir/
        ----app/
            -----config/
                    ------ __init__.py
                    ------   config.py
            -----constants/
                    ------ __init__.py
                    ------ ****.py
                    ------ ****.py
            -----exception/
                    ------ __init__.py
            -----main/
                    ------ __init__.py
                    ------ controller.py
            -----util/
                    ------ __init__.py
                    ------ picklehelp.py

现在,当我在/main/controller.py进行以下导入并运行时,它不起作用。

from app.util.picklehelp import func

如何在不对代码进行最大更改的情况下导入模块,以便它可以在任何机器中工作,而不管路径位置和操作系统

2 个答案:

答案 0 :(得分:0)

答案是添加sys.path应用程序的路径(没有文件名):

import sys
sys.path.append(r"root-dir\app\util")

from picklehelp import func
  

如何在不对代码进行最大更改的情况下导入模块,以便它可以在任何机器*中工作,而不管路径位置和操作系统

sys模块适用于Python支持的任何操作系统。然后,可以有其他模块独立于操作系统,例如Windows操作系统中的winsoundwinregwindows

* 没有任何机器可以运行Python

答案 1 :(得分:0)

将您的目录更改为root-dir。运行python -m app.main.controller

这会将您的应用作为模块运行。