我正在尝试使用 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 文件,但到目前为止这些都不起作用。
2 回答
![?](http://img1.sycdn.imooc.com/5458472300015f4702200220-100-100.jpg)
开心每一天1111
TA贡献1836条经验 获得超13个赞
当我们使用相对路径查找文件时,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__))))
![?](http://img1.sycdn.imooc.com/533e4c0500010c7602000200-100-100.jpg)
互换的青春
TA贡献1797条经验 获得超6个赞
您可以在导入之前将它们添加到代码顶部
import sys
from pathlib import Path
sys.path[0] = str(Path(sys.path[0]).parent)
from board import my_func
或者您可以添加一个.env文件:
PYTHONPATH=.:${PYTHONPATH}
添加回答
举报
0/150
提交
取消