VSCode在终端和pythonpath中运行Python文件

2024-04-29 13:18:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图理解VSCode与运行项目子包中存储的python脚本相关的行为。 如果我的项目结构如下:

proj/
  util/
  main/hello.py
test/

如果你好.py进口自项目利用率-我使用'runpython File in Terminal'来执行脚本,因为找不到模块而失败(项目利用率)-因为默认情况下,不会将项目顶层目录添加到pythonpath。如果我在根目录下创建一个.env文件,并为PYTHONPATH添加一个定义以包含我的项目顶层目录,那么通过上面的选项运行时,同样不会使用这个文件。在

如果我创建一个默认的调试启动集并使用'debug Python current file in terminal'-这将读取.env文件并按预期工作。在

PyCharm自动将顶级项目目录添加到系统路径当在终端中运行一个脚本时,VSCode不应该提供这样的选项还是我遗漏了什么?在

当前版本如下,尽管我在Windows下看到了相同的行为。在

^{pr2}$

Tags: 文件项目inpy目录env脚本main
2条回答

当您让Python运行您的hello.py时,PVSC正在使用终端来运行python proj/main/hello.py。对于Python来说,这与从proj/main目录运行python hello.py相同,这意味着解释器甚至看不到{}中包含的包(因此它没有{}的概念)。在

未使用.env文件,因为该文件再次只是在终端中直接执行的文件,而您的终端或Python都不会读取.env文件。但是,当您使用调试器时,我们可以指定诸如使用.env文件之类的详细信息,以及调试器按预期设置PYTHONPATH的原因。在

只需将这些行添加到要执行的文件的顶部

if __name__ == "__main__":
    import os
    import sys
    sys.path.append(os.getcwd())

These script add the directory, where file in, to your path when executing directly which __name__ == "__main__" means.

相关问题 更多 >