从 VSCode 中的同一目录导入文件

Posted

技术标签:

【中文标题】从 VSCode 中的同一目录导入文件【英文标题】:import files from same directory in VSCode 【发布时间】:2019-09-19 17:25:41 【问题描述】:

我无法将 .py 文件导入另一个 .py 文件。我以为只要做起来事情就会很容易

import filename.py 

但我总是收到 ModuleNotFoundError

我也试过了:

from .filename import *
from filename import * 
from .filename import Class 
from . import filename 

我也试过添加

import os, sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))

但这也没有奏效。

你们知道我会错过什么吗?

澄清一下:

我在 VSCode 上使用 Python3 我的两个文件都在同一个目录中。

这是结构

.
├── __pycache__
│   └── model.cpython-36.pyc
├── ai.py
├── model.py
└── recording
    ├── openaigym.video.0.2641.video000000.meta.json
    └── openaigym.video.0.2641.video000000.mp4

感谢您的帮助!

【问题讨论】:

有时(或总是)从主文件的位置搜索模块。因此,您需要创建相对于该路径的路径,这可能会有所帮助***.com/questions/14132789/… 你能给出你的模块和主文件的树形结构吗? 能否提供在终端中运行的命令并显示文件夹结构? 为了更清楚,我有两个文件,都在同一个目录中。我编辑了问题以提供文件夹结构。我正在尝试将 model.py 导入 ai.py 我在 VSCode 上使用交互式笔记本,所以我运行代码的每个部分,就好像它是一个单元格一样。我试图简单地做python ai.py,但我得到了同样的错误 你不应该需要import上的.py 【参考方案1】:

如果您的类名与任何现有的 python 类冲突,则可能会发生这种情况

在您的ai.py 文件中执行:


from model import Class_name 

如果这不起作用,请在您拥有model.pyai.py 的同一目录中添加一个空的__init.py__ 文件。

注意:有时 VSCode 会显示 unresolved imports 警告,即使您的代码运行良好。

【讨论】:

非常感谢@saintlyzero。确实,它有效!我还发现实际上只需在 VSCode 中重新启动内核就可以了。

以上是关于从 VSCode 中的同一目录导入文件的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用从 VSCode 中的特定文件自动导入?

VSCode for MacOS 中的 Typescript 导入不正确

在VSCode中使用.ipynb导入.py

使用当前文件夹中的模块的VScode Python未解析导入

如何从python中的其他目录导入模块? [复制]

从同一文件夹中的文件导入功能