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
这是我的目录结构。
提示:
不要使用“..”,它实际上会在路径而不是父目录中添加两个逗号。
我知道有很多 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
这是我的目录结构。
提示:
不要使用“..”,它实际上会在路径而不是父目录中添加两个逗号。