Python:从文件向上一级调用类函数
在下面的结构中,我有一个名为Python:从文件向上一级调用类函数,python,class,Python,Class,在下面的结构中,我有一个名为global的全局类 root_dir Global.py scripts_dir test.py Global.py class Global: def Test(self): return 'test' from Global import Global globalObj = Global() print(str(globalObj.Test())) test.py class Global: de
global
的全局类
root_dir
Global.py
scripts_dir
test.py
Global.py
class Global:
def Test(self):
return 'test'
from Global import Global
globalObj = Global()
print(str(globalObj.Test()))
test.py
class Global:
def Test(self):
return 'test'
from Global import Global
globalObj = Global()
print(str(globalObj.Test()))
错误
ModuleNotFoundError: No module named 'Global'
我无法从
Test.py
调用类函数,我已尝试使用import。。来自全局的全局
也没有运气。文件夹结构如下:
root_dir
Global.py
scripts_dir
test.py
您至少有两种选择:
root\u dir
运行python-m scripts\u dir.test
。您将需要\uuuu init\uuuuuu.py
文件,以便脚本\u dir
成为Python包root_dir
Global.py
scripts_dir
__init__.py
test.py
scripts\u dir
中的python test.py
和内部,使用sys.path.insert
插入根目录的完整路径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()))
文件夹结构为:
root_dir
Global.py
scripts_dir
test.py
您至少有两种选择:
root\u dir
运行python-m scripts\u dir.test
。您将需要\uuuu init\uuuuuu.py
文件,以便脚本\u dir
成为Python包root_dir
Global.py
scripts_dir
__init__.py
test.py
scripts\u dir
中的python test.py
和内部,使用sys.path.insert
插入根目录的完整路径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()))
这不是正确的语法<代码>从全局导入全局是正确的语法。请勿将答案作为注释发布。将它们作为答案发布。你会得到奖励的。@PyCharm先生,谢谢你,我的拼写错误,我已经有了这个正确的语法,但它找不到全局类。@AdamBarnes,这实际上不是答案。这个问题在早期版本中有一个语法错误。我只是指出了这一点。没错,我的错。这不是正确的语法<代码>从全局导入全局是正确的语法。请勿将答案作为注释发布。将它们作为答案发布。你会得到奖励的。@PyCharm先生,谢谢你,我的拼写错误,我已经有了这个正确的语法,但它找不到全局类。@AdamBarnes,这实际上不是答案。这个问题在早期版本中有一个语法错误。只是指出了这一点。没错,我的错。我已经尝试了
sys.path
,没有区别,相同的错误<代码>sys.path.insert(0,参数[3]+'\root\u dir\\\'),来自全局导入全局globalClass=Global()我不确定在sys.path
列表中插入的路径的值是多少。我已经更新了示例,因此您已经根据test.py
脚本的位置自动设置了ROOT\u DIR
<代码>sys.path.insert(0,参数[3]+'\root\u dir\\\'),来自全局导入全局globalClass=Global()我不确定在sys.path
列表中插入的路径的值是多少。我已经更新了示例,因此您可以根据test.py
脚本的位置自动设置ROOT\u DIR
。