vscode が Python カスタム モジュールを見つけることができず、「No module names 'xxx'」というエラーが報告される問題を解決します。

最近Pythonを学習する過程で、作者はpycharmで正常に動作したプロジェクトをvscodeに入れてみたところ、作者のカスタムモジュールが見つからないなどのエラーを発見し、いくつかの格言やメソッドを参考にしたので記録します。ここで解決策。

序文

vscode がカスタム モジュールを見つけられない理由は、そのPYTHONPATHに関連しています。作成者のディレクトリ構造を次の図に示します。

実践後、do_mysql.py が testDatas と同じレベルにある場合、上記のステートメントは正常にインポートできることがわかります。また、do_mysql.py が do_excel.py と同じレベルにインポートされている場合: import do_excel もインポートできることがわかりました。正常にインポートされました。

しかし、インポートモジュール: from testDatas import filePath、エラー「No module names 'testDatas'」

目標: do_mysql.py の filePath.py() を参照する

エラーが引用符で囲まれているため、現在のファイル構造で testDatas が見つからないことを意味します。sys をインポートし、sys.path を出力し、現在のパスを確認できます。

これらのパスのうち最初の 1 つだけが作成者のプロジェクトに関連しており、それが do_mysql.py のディレクトリであるため、testDatas が見つからないことがわかります。したがって、filePath.py を導入したい場合は、まず testDatas を見つける必要があるため、次の 2 つの方法があります。

解決

方法 1

パスを絶対パスとしてsys.path に追加します (「D:\pro\interfaceTest」は作成者のプロジェクト パスです)。

import sys
sys.path.append("D:\pro\interfaceTest")

パスを相対パスとして sys.path に追加します。

import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), '../testDatas'))

現在のプロジェクトの .vscode (隠しディレクトリ) の下に settings.json (そのようなファイルがない場合は、自分で追加できます) に追加します。

{
    "python.analysis.extraPaths": ["./testDatas"]
}

右上隅にある実行ボタンをクリックして有効にします。

方法 2

最初の方法は有効ですが、ファイルごとにこれを実行する必要があるのは非常に面倒なので、次のインポートを容易にするためにモジュールのパスを構成できます。

まず、「env」: {"PYTHONPATH": "${workspaceRoot}"} を .vscode の下の launch.json に追加します。

{
  "version": "0.2.0",
  "configurations": [
    {
      // 省略其他
      "env": {"PYTHONPATH": "${workspaceRoot}"}
    }
  ]
}

.vscode の下に settings.json を追加します。

{
  // 省略其他
  "terminal.integrated.env.windows": {
    "PYTHONPATH": "${workspaceFolder};${env:PYTHONPATH}"
  }
}

上記のファイルを保存し、do_mysql.py で F5 を押すと有効になります。ただし、右上隅にある実行ボタンをクリックしても、「testDatas」という名前のモジュールがありませんと報告されますが、それは問題ではありません。vscode を再起動してもう一度実行すると、成功します。

もう一度確認してください

この時点で、sys.path を出力して以下を確認できます。

InterfaceTest ディレクトリがロードされていることがわかります。

おすすめ

転載: blog.csdn.net/sxww_zyt/article/details/129487582