我最近从 PyCharm 切换到 VSCode,之前在 PyCharm 中开发的项目中的相对路径在 VSCode 中不再起作用。
总的来说,我希望能够根据根项目目录从各种脚本导入函数。但是,当指定打开文件的路径时(即使用 open('somepath.txt')...),我想使用调用 open 的文件中的相对路径,而不是根目录中的相对路径。
我能够在 PyCharm 中做到这一点,我喜欢它使路径变得多么紧凑。如何在 VSCode 中复制此行为?
我尝试设置
"python.terminal.executeInFileDir": true
,但这使得从其他文件导入不再相对于根目录。但是,如果将该设置设置为 False,VSCode 会搜索要从根目录打开的文件,这不是我想要的。
这可能不是您想要的答案,但这就是我会做的,特别是如果代码将来可能被其他人使用。
如果您绝对想要这种行为,则应该以编程方式强制执行它,而不是依赖 IDE 选项。
要始终打开相对于进行调用的文件的文件,您可以在该文件中使用
os.path.dirname(__file__)
定义相对路径,并指定完整路径,例如:os.path.join(os.path.dirname(__file__), <folder1>, ..., <folderN>, <filename>)