为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地10843 2023-07-11 15:06:29
我正在尝试使用 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 回答

?
开心每一天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__))))

//img1.sycdn.imooc.com//64acffa00001c13e08780368.jpg

查看完整回答
反对 回复 2023-07-11
?
互换的青春

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}


查看完整回答
反对 回复 2023-07-11
  • 2 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信