首页 > 解决方案 > 在 VSCode 中从另一个 python 文件导入一个 python 文件

问题描述

我已经看到很多尝试解决这个问题,但没有得到它适合我。我喜欢 VSCode——它好看、轻巧、快速。但我无法理解他们是如何使 import 语句如此令人困惑的。就上下文而言,我来自 Pycharm,那里一切正常(等待程序启动 10 分钟后)。

所以,我有一个看起来像这样的文件夹结构:

在此处输入图像描述

当前交互的工作方式:

  1. a.py 和 b.py 可以通过以下方式相互导入:import (a|b).py
  2. a.py 和 b.py 可以用 c.py 和 d.py 导入就好了:from folder(1|2) import (c|d).py
  3. c.py 和 d.py 不能使用 a.py 或 d.py 导入:(对于与from . import (a|b).py此类似性质的其他问题,这是推荐的解决方案)
  4. c.py 和 d.py 不能相互导入:(from .folder(1|2) import (c|d).py 我很确定这里的语法是错误的)

我当前的 settings.json 是:

"python.pythonPath": "c:\\dev\\workspace-vscode\\Python\\Personal\\importTesting\\venv\\Scripts\\python.exe"

我的launch.json是:

{
"version": "0.2.0",
"configurations": [
    {
        "name": "Python: Current File",
        "type": "python",
        "request": "launch",
        "program": "${file}",
        "console": "integratedTerminal",
        "cwd": "${workspaceFolder}"
    }
]}

我见过涉及 .env 文件的解决方案,但他们从未解释将文件放在哪里。另外,什么是工作区文件夹?这在哪里解决?它被认为是根文件夹吗?

还有一点需要注意的是,我使用的实际 import 语句是:from Code.WordAnalysis.wordsAndLetters import word_count,除非您查看我的代码(我在下面链接到),否则我理解这对您没有任何意义。但有趣的是,它可以在 Pycharm 中运行而不费吹灰之力。这种行为让我认为这是一些参考问题 - 可能是错误的。

上面的 import 语句吐出这个错误:

Traceback (most recent call last): File "c:\dev\workspace-vscode\Python\WorkRelated\ITTechTalk\Code\PasswordStrengthCalculators\passwordstrengthreal.py", line 1, in <module> from Code.WordAnalysis.wordsAndLetters import word_count ModuleNotFoundError: No module named 'Code'

如果您想查看我的存储库,可以在这里找到:https ://github.com/TJMcButters/workspace-vscode/tree/master/Python/WorkRelated/ITTechTalk

对此的任何帮助将不胜感激!这让我疯狂。

标签: pythonpython-3.xvisual-studio-codeimportmodule

解决方案


对案例 3 和 4 的回应:

直接运行脚本时,不可能从其父目录导入任何内容。

我的方法是避免编写必须从父目录导入的脚本。在必须发生这种情况的情况下,首选的解决方法是修改sys.path.

您可以通过执行以下操作添加要在运行时中导入模块的目录:

import sys
sys.path.append("dir_from_which_to_import")

我建议你看看这个材料 - https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html


推荐阅读