Python:从文件一级调用类函数

时间:2018-02-23 11:12:32

标签: python class

我在下面的结构中有一个名为Global的全局类。

root_dir
   Global.py
   scripts_dir
      test.py

Global.py

class Global:
    def Test(self):
        return 'test'

test.py

from Global import Global

globalObj = Global()
print(str(globalObj.Test()))

错误

ModuleNotFoundError: No module named 'Global'

我无法从Test.py调用类函数,我尝试使用import .. Global from Global也没有运气。

1 个答案:

答案 0 :(得分:3)

文件夹结构为:

root_dir
   Global.py
   scripts_dir
      test.py

您至少有两个选择:

  1. 您从python -m scripts_dir.test开始root_dir。您将需要__init__.py文件,因此scripts_dir成为Python包。
  2. 示例文件夹结构:

    root_dir
       Global.py
       scripts_dir
          __init__.py
          test.py
    
    1. 您在导入前使用python test.py内部的scripts_dir使用sys.path.insert插入root_dir的完整路径。
    2. 使用sys.path

      的示例
      import os
      import sys
      
      ROOT_DIR = os.path.normpath(os.path.join(os.path.abspath(__file__), '..'))
      sys.path.insert(0, ROOT_DIR)
      
      from Global import Global
      
      globalObj = Global()
      print(str(globalObj.Test()))