如何解决Python VSCode:尽管添加了 PYTHONPATH,但仍无法使用“播放”按钮导入模块
TL;DR - VSCode settings.json 和 .env 文件未在 MacOS 的终端中设置 PYTHONPATH
我正在尝试在 MacOS 上将 VSCode 与 python3 结合使用,以在我的工作区中运行导入工作区中其他模块的代码。我的代码可以在这里找到:https://github.com/stuti-rastogi/commonAlgorithms/blob/master/dataStructures/graphs/graphSearch.py
这是我工作区的结构:
commonAlgorithms/
|____dataStructures/
|____stacks.py
|____queues.py
|____...
|____graphs/
|_____graph.py
|_____graphSearch.py
|_____minimumSpanningTrees.py.py
|_____...
在 graphSearch.py
(实现 BFS 和 DFS)中,我想利用我在 dataStructures 下的 stack 和 queue 实现。因此我有这样的导入语句(我不想使用相对导入):
from dataStructures.queues import Queue
from dataStructures.stacks import Stack
from dataStructures.graphs.graph import Graph
我使用了一种非常hacky的方式来设置我的 PYTHONPATH,它适用于 F5、Ctrl+F5 以及在终端中运行代码的 VSCode 上的“播放”按钮:我已经在我的 {{1} }:
~/.bash_profile
现在为了以一种更优雅的方式来完成它,以适用于不同的工作区,我决定修改 VSCode 工作区设置来做到这一点。我跟着this answer和this blog。 但是,我可以使用 F5 和 Ctrl+F5 来运行代码,但不能使用“播放”按钮。
我做了以下修改(也重启了VSCode,杀死了终端):
1. launch.json:添加了 PYTHONPATH="/Users/stutirastogi/dev/commonAlgorithms:$PYTHONPATH"
export PYTHONPATH
和 env
cwd
2. settings.json:添加了 PYTHONPATH 和 envFile
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information,visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0","configurations": [
{
"name": "Python: Current File","type": "python","request": "launch","program": "${file}","console": "integratedTerminal","cwd": "${fileDirname}","env": {"PYTHONPATH": "${workspaceFolder}${pathSeparator}${env:PYTHONPATH}"}
}
]
}
3. .env 文件:在工作区的根目录添加一个 .env 文件
{
"python.pythonPath": "/usr/local/bin/python3","python.testing.promptToConfigure": false,"python.testing.pytestEnabled": false,"python.testing.unittestEnabled": false,"python.testing.nosetestsEnabled": false,"terminal.integrated.env.osx": {
"PYTHONPATH": "${workspaceFolder}"
},"python.envFile": "${workspaceFolder}/.env"
}
由于 F5 和 Ctrl+F5 正在工作,我觉得 launch.json 更改有效,但 settings.json 不符合我的理解(如果我错了,请纠正我)。我通常使用“播放”按钮来运行代码,所以很想找到让它工作的方法。
我尝试过的其他一些事情:
- 硬编码绝对路径而不是
WORKSPACE_FOLDER="/Users/stutirastogi/dev/commonAlgorithms" PYTHONPATH="${WORKSPACE_FOLDER}"
- 将 init.py 添加到 dataStructures/ 和 dataStructures/graphs
- 仅尝试使用 .env 文件,也仅使用 settings.json 中的 PYTHONPATH
不确定我哪里出错了,如果您能帮助我完成这项工作,我将不胜感激!谢谢!
其他参考:
- setup vscode so python import finds modules
- https://code.visualstudio.com/docs/python/environments#_environment-variable-definitions-file
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。