Python VSCode:尽管添加了 PYTHONPATH,但仍无法使用“播放”按钮导入模块

时间:2021-05-25 12:52:32

标签: python visual-studio-code module vscode-settings 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 下的 stackqueue 实现。因此我有这样的导入语句(我不想使用相对导入):

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 answerthis 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

不确定我哪里出错了,如果您能帮助我完成这项工作,我将不胜感激!谢谢!

其他参考:

0 个答案:

没有答案
相关问题