VS Code 无法识别从其他脚本导入的模块和常量

问题描述 投票:0回答:1

在使用 Visual Studio Code 处理大型项目时,我有一个普遍的问题,我想避免在每个 python 文件中编写相同的导入和定义常量。假设我的项目结构如下:

project/
    helpers.py
    scripts/
        plot.py

helpers.py
中,我导入模块并定义用于绘图的常量,例如

import matplotlib.pyplot as plt

LINE_WIDTH = 2

由于我想避免在图形上定义线宽并在每个脚本中导入

matplotlib.pyplot
,因此我将项目文件夹添加到我的Python路径
export $PYTHONPATH=/folder/to/project/:$PYTHONPATH
中,这样我就可以在
plot.py
中编写

from helpers import *

plt.plot([1,2,3], [1,4,9], lw=LINE_WIDTH)
plt.savefig('figure.png')

plot.py
中,VS Code 认为
plt
LINE_WIDTH
未定义,但脚本运行良好,我得到了情节。有什么方法可以让 VS Code 识别从
helpers.py
导入的内容,这样我在制作新脚本时就不必记住所有特定的变量命名了?

我尝试过搜索类似的问题,但我得到的最接近的是与相对导入相关的问题。

python visual-studio-code python-import
1个回答
0
投票

解决此问题的一种可能方法是创建(在与脚本相同的文件夹中)一个新的包文件夹。我将此文件夹命名为“helper_package”。

helper_package文件夹的内容是一个名为

的文件
__init__.py

内容如下:

import matplotlib.pyplot as plt
LINE_WIDTH = 2

您可以将所有常见的导入和变量放入其中。

然后,你的plot.py 文件将如下所示:

from helper_package import *

plt.plot([1,2,3], [1,4,9], lw=LINE_WIDTH)
plt.savefig('figure.png')

请使用 VSCode Python 扩展和 “运行 Python 文件”运行选项。不是“运行代码”。

© www.soinside.com 2019 - 2024. All rights reserved.