猿问

使用 python 的 Visual Studio 代码中出现“尝试在没有已知父包的情况下进行相

我正在尝试使用 Visual Studio 代码组装一个 python 项目,并且我想在文件之间导入函数和类。我的文件夹结构如下:


chessboards

|-> __pycache__

|-> .vscode

|-> boards

   |-> __init__.py

   |-> queens.py

   |-> knights.py

|-> __init__.py

|-> board.py

我在“boards.py”文件中有一个名为 my_func 的函数。在外部目录的 init.py 文件中,如果我输入:


from .board import my_func

我收到标题中的错误。我也尝试过:


from chessboards.board import my_func

在这种情况下,它告诉我没有名为“chessboards”的模块,我不明白,因为那里有一个 init.py 文件。


我已将 vscode 中的导入设置从自动更改为相对,但似乎都不起作用。如果有人可以帮助我,我将非常感激。其他问题的大多数答案都说要更改 PYTHONPATH 或 .env 文件,但到目前为止这些都不起作用。


慕的地10843
浏览 88回答 2
2回答

开心每一天1111

当我们使用相对路径查找文件时,VSCode会根据当前文件的文件夹位置来查找导入的文件。为了描述方便,如果我们将“board.py”文件的“my_func”导入到“queens.py”文件中,那么VSCode找不到“board.py”,因为它不在“boards”文件夹中。因此,我们需要添加这条路径来帮助它找到它。也可以使用下面的语句将文件路径导入到要查找的系统路径中。import os,sys  sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

互换的青春

您可以在导入之前将它们添加到代码顶部import sysfrom pathlib import Pathsys.path[0] = str(Path(sys.path[0]).parent)from board import my_func或者您可以添加一个.env文件:PYTHONPATH=.:${PYTHONPATH}
随时随地看视频慕课网APP

相关分类

Python
我要回答