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 下的 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

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

其他参考:

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...