从 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.py
和ai.py
的同一目录中添加一个空的__init.py__
文件。
注意:有时 VSCode 会显示 unresolved imports
警告,即使您的代码运行良好。
【讨论】:
非常感谢@saintlyzero。确实,它有效!我还发现实际上只需在 VSCode 中重新启动内核就可以了。以上是关于从 VSCode 中的同一目录导入文件的主要内容,如果未能解决你的问题,请参考以下文章
VSCode for MacOS 中的 Typescript 导入不正确