Python 包导入在 Spyder 中有效,但在 VS Code 中无效

Python package import works in Spyder but not VS Code

我知道有很多 Python 包导入问题,但我似乎找不到有效的答案。大多数答案似乎是关于缺少 __init__.py 来制作一个包,但我在项目的基础上有一个(我也在子文件夹中尝试过)。

我有一个项目

package
+-- __init__.py
+-- weasel.py
+-- badgers
|   +-- __init__.py
|   +-- a.py

其中 weasel.py 只包含一个测试函数

def test_function():
    return "HELLO"

并且我希望能够从 a.py 调用 test_function,我已经尝试过(无论是否使用 init.py文件夹獾)和 none 其中似乎有效。

import weasel -> ModuleNotFoundError: No module named 'weasel'
from . import weasel -> ImportError: attempted relative import with no known parent package
import package.weasel -> ModuleNotFoundError: No module named 'package'
from package import weasel

到目前为止,我已经设法使用的 hack,它在 Spyder 和我的生产环境中运行良好;项目是一个 Dash 应用程序(所以是 Flask)部署来渲染。

import sys
sys.path.append("..")
import weasel

但这只会在 VS Code 中抛出 ModuleNotFoundError。

我并不反对 hack :S,但如果我可以在 VS Code 中构建项目,那么当前项目的需求会让生活变得非常非常轻松。

拜托,我恳求 Whosebug 社区有人可以让我知道我做错了什么吗?或者可以在 VS Code 中使用的技巧?

谢谢,

这是路径造成的。 vscode 运行 文件的路径不是当前文件路径。您需要手动添加。

import sys
sys.path.append("your package's Path")  #for example, my path is "C:/my_python/package"
import weasel

这是我的目录结构。

提示:

不要使用“..”,它实际上会在路径而不是父目录中添加两个逗号。