所以我有一个具有以下目录结构的项目:
app
|
__init__.py
some_python.py
scripts
|
some_script.py
我想从 some_script.py 中的 some_python.py 导入一个函数,所以我在 some_script.py 中使用它
import os
import sys
from pathlib import Path
path = Path(os.path.realpath(__file__))
print(path)
print(str(path.parent.parent.absolute()) + "/app")
sys.path.append(str(path.parent.parent.absolute()) + "/app")
print(sys.path)
从打印sys.path中可以看到app目录是路径中的最后一项。但当我跑步时我仍然得到
ModuleNotFoundError: No module named 'app'
some_script.py
我尝试将 app 目录添加到路径中,我希望这能让 python 找到该模块。然而,事实并非如此。
如果文件夹是问题中给出的嵌套文件夹(子文件夹),则不需要绝对路径。
'''
this can see all the subfolders
'''
import scripts.some_script
x = 100
y = 50
def hello_world():
print('hello world')
如果该文件夹不是子文件夹,则需要使用绝对路径。
但是,使用
path = Path(os.path.realpath(__file__))
会将您带到可执行文件的文件夹和所有嵌套文件夹。所以你需要小心路径。
为了明确起见,如果您要使用此选项,请复制并粘贴完整路径,如下所示:
full_path = c:\\python\\tests\\full_path\\file_name.py
(包括 Windows 的双反斜杠或单正斜杠)。