繁体   English   中英

无法从同一文件夹导入本地文件 - Reportmissingimport

[英]can't import local file from same folder - Reportmissingimport

我正在处理 Visual Studio 代码,无法从项目文件夹中导入文件,该文件夹是项目的文件夹

一个代码

import frame

在“框架”一词上加下划线并产生以下 output:

Import "frame" could not be resolvedPylancereportMissingImports

我尝试了很多关于 SO 上类似问题的解决方案,我检查了全局变量 ComSpec,它的值是正确的 - C:\WINDOWS\system32\cmd.exe,我安装了,我将"python.analysis.extraPaths"设置为["frame", "charts", "app"]并为python.defaultInterpreterPath (它之前的值只是 'python')。 有趣的是 - 我之前没有settings.json 。json 值,我通过在 Visual Studio 代码中打开设置自己创建它。它在.vscode settings.json

编辑:

将 Jupyter Notebooks 作为模块导入的文档

解决方案 1

我还使用import-ipynb找到了另一个答案,我将在下面粘贴:

从命令提示符安装我的助手库:

 pip install import-ipynb

从您的笔记本中导入它:

 import import_ipynb

现在import您的.ipynb笔记本,就好像它是一个.py文件一样

import TheOtherNotebook

这个 python-ipynb 模块只是一个文件,它严格遵守 jupyter 网站上的官方指南。

PS 它还支持from A import foofrom A import *

PPS 适用于子目录: import AB

解决方案 2

在上面链接的同一个问题上,还有这个额外的答案也可能会有所帮助,我将其粘贴在下面:

!pip install ipynb

然后将另一个笔记本导入为

from ipynb.fs.full.<notebook_name> import *

或者

from ipynb.fs.full.<notebook_name> import <function_name>

确保所有笔记本都在同一个目录中。

编辑1:您可以在此处查看官方文档-https://ipynb.readthedocs.io/en/stable/

此外,如果您只想从笔记本导入 class 和 function 定义(而不是顶级语句),则可以使用 ipynb.fs.defs 而不是 ipynb.fs.full。 完整的大写变量赋值也将被评估。


尝试通过添加__init__.py文件将目录转换为 package。 这是它如何工作的示例:

目录结构:

ProjectRoot:.
│   frame.py
│   other.py
│   __init__.py

frame.py

MSG = "Hello World"

other.py

import frame
print(frame.MSG)

__init__.py

# Empty file

如果你要运行other.py ,你会得到:

Hello World

这是python 导入系统文档的链接

简单直接的方法是将您的frame.ipynb文件转换为.py文件。

在此处输入图像描述

在此处输入图像描述

还有关于"python.analysis.extraPaths"的配置。 脚本都在同一个文件夹下,此时不需要配置"python.analysis.extraPaths"

在此处输入图像描述

如果存在子文件夹,则配置如下:

    "python.analysis.extraPaths": [
        "./pyfile"
    ]

是路径,不是文件名

在此处输入图像描述

是路径,而不是文件名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM