在使用 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
导入的内容,这样我在制作新脚本时就不必记住所有特定的变量命名了?
我尝试过搜索类似的问题,但我得到的最接近的是与相对导入相关的问题。
解决此问题的一种可能方法是创建(在与脚本相同的文件夹中)一个新的包文件夹。我将此文件夹命名为“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 文件”运行选项。不是“运行代码”。