我在下面的结构中有一个名为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
也没有运气。
答案 0 :(得分:3)
文件夹结构为:
root_dir
Global.py
scripts_dir
test.py
您至少有两个选择:
python -m scripts_dir.test
开始root_dir
。您将需要__init__.py
文件,因此scripts_dir
成为Python包。示例文件夹结构:
root_dir
Global.py
scripts_dir
__init__.py
test.py
python test.py
内部的scripts_dir
使用sys.path.insert
插入root_dir
的完整路径。使用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()))