MacでのPython開発用にVSCodeを使い始めましたが、pylint
にモジュールを見つけさせることができません。
これは私のプロジェクトフォルダ構造です:
_project_root/
.env
.vscode/
settings.json
lib/
# lib containing necessary modules
sample/
client/
EDAMTest.py
# many more files
_
pylint
をインストールしたvirtualenvを使用しています。仮想環境はターミナルでアクティブ化されます。ターミナルの_project_root
_を介して_code .
_フォルダー内からcode
を開始しました。
VS Codeは、正しいインタープリターを使用していると言っています。左下にPython 3.6.1 (virtualenv)
と表示されていることがわかります
ターミナル内で_project_root/sample/client/EDAMTest.py
_コードをテストしたい場合は、フォルダー_export PYTHONPATH=../../lib; python EDAMTest.py
_にいる間に_project_root/sample/client/
_を介してテストできます。
VS Codeを使用している場合は、ファイル_EDAMTest.py
_を開くと、pylint
はlib
からモジュールをインポートできないことを通知しています。
今私の質問:
VSCodeでlib
をPYTHONPATH
に追加するにはどうすればよいですか?
私はそうするためのいくつかの可能な方法を見つけました:
.env
_ファイルを作成します(以下の[1]を参照)。.vscode/launch.json
_ファイルでPYTHONPATH
を指定します([2]を参照)私が見つけた可能な解決策はどれもうまくいかないようです。
何が足りないのですか?
[1] 環境変数定義ファイル
これは、グローバル(env)変数を定義する方法を教えてくれます。だから私はこれを指定しました:
_PYTHONPATH="~/.virtualenvs/evernote/bin/python;lib"
_
しかし、それは機能しません。それでもlib
sパスがpylint
によって見つかりません
[2]それで私は次のように_launch.json
_ファイルを作成しました:
_{
"name": "Python",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config.python.pythonPath}",
"program": "${file}",
"cwd": "${workspaceRoot}",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
],
"env": {
"PYTHONPATH": "~/.virtualenvs/evernote/bin/python:lib"
}
}
_
編集
この問題に対処しようとするリンクは次のとおりです。
そのリンクは、いくつかの考えられる問題に対処しようとします。1つはこれです。
...インポートできません
推奨される解決策は次のとおりです。
pythonPath
設定がPylintがインストールされている有効なPythonインストールを指していることを確認してください。
=>はい、しました。
または、使用しているPythonインタープリターに対応するPylintの適切なバージョンに_
python.linting.pylintPath
_を設定します。
=>やりましたが、まだ成功していません:
私の_.vscode/settings.json
_:
_{
"python.pythonPath": "~/.virtualenvs/evernote/bin/python",
"python.linting.pylintPath": "~/.virtualenvs/evernote/bin/pylint"
}
_
.env
ファイルでは、PYTHONPATH="~/.virtualenvs/evernote/bin/python:lib"
のようにセミコロンの代わりにコロンを使用する必要があったようです。それで問題は解決したようです。