“没有名为 X 的模块”错误,即使使用 sys.path.append

问题描述 投票:0回答:1

所以我有一个具有以下目录结构的项目:

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 找到该模块。然而,事实并非如此。

python python-import python-module
1个回答
0
投票

如果文件夹是问题中给出的嵌套文件夹(子文件夹),则不需要绝对路径。


'''
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 的双反斜杠或单正斜杠)。

© www.soinside.com 2019 - 2024. All rights reserved.