web-dev-qa-db-ja.com

VSCodeターミナルに誤ったpython=バージョンとパスが表示され、anacondaからターミナルを起動すると完全に機能する

私は今、この1つの問題に何時間も立ち往生しており、自分のコンピューターを窓から投げ出す以外のあらゆることを試みたと信じています。

pythonバージョン3.7およびDjangoバージョン2.1を使用して、Anacondaに仮想環境をセットアップしています。Anacondaからこの仮想環境をアクティブ化すると、すべてがスムーズに動作します。

_(movierecommender) bash-3.2$ python -V
Python 3.7.2
(movierecommender) bash-3.2$ python -m Django --version
2.1.5
_

しかし、vscodeターミナルから環境をアクティブにしようとすると、

_(movierecommender) maxs-MBP:movies maxswann$ python -V
Python 2.7.10
(movierecommender) maxs-MBP:movies maxswann$ python -m Django --version
/usr/bin/python: No module named Django
_

Vscodeウィンドウの左下にPython 3.7.2 64-bit ('movierecommender':conda)がmy pythonインタープリターとして表示されていますが、それでも間違ったpython versionが表示されます

これはPYTHONPATHに関係している可能性があると思いましたが、Anacondaでこれを自動的に追加するので心配する必要はありませんが、設定を解除してリセットしようとしました:_"python.pythonPath":"/Users/maxswann/anaconda3/envs/movierecommender/bin/python"_をsettings.json.vscodeファイルに追加

使用:

_python -c "import sys; print(sys.path)"
_

アナコンダ発売のターミナル

_['', '/Users/maxswann/anaconda3/envs/movierecommender/lib/python37.Zip', '/Users/maxswann/anaconda3/envs/movierecommender/lib/python3.7', '/Users/maxswann/anaconda3/envs/movierecommender/lib/python3.7/lib-dynload', '/Users/maxswann/anaconda3/envs/movierecommender/lib/python3.7/site-packages']
_

対コード端末

_['', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.Zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/Library/Python/2.7/site-packages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC']
_

ご覧のとおり、デフォルトのMac OS python version。

他の誰かが以前にこの問題を抱えていましたか?私はこれを修正しようとして一日中髪を引きちぎっていました

8
aguycalledmax

私はまったく同じ問題に直面しています。最後にフォーラムから回避策を見つけました( https://github.com/Microsoft/vscode-python/issues/4434#issuecomment-466600591

構成に何かを追加する限り、terminal.integrated.env.osx、シェルの初期化後にソースがPATHに追加されます(ソースbash_profileまたはzshrc)。私のMojaveでは、次の空のエントリをユーザー構成に追加するだけです。

"terminal.integrated.env.osx": {
        "PATH": ""
}

そうして $PATHは外部端子と同じになります。

11

このスクリプトを実行しました。現在、python3は仮想環境から実行されています。 [ウインドウズ10]

pip3 install virtualenv
virtualenv env
call ".\env\Scripts\activate.bat"
set requirements="./Requirements.txt"
pip3 install -r %requirements%
python
0

同じ問題が発生しました。 powershellターミナルからWindowsターミナルに切り替えてみてください。その後、再起動します。 anacondaターミナルで再起動するはずです。それが機能しない場合は、次のことができます。

最初に、デフォルトのターミナルをVisual Code内からPowershellではなくCMDターミナルに変更します。次のコードをバッチファイルに追加します。

call "c:\path\to\anaconda3\Scripts\activate"

次に、バッチファイルに名前を付けて、ルートディレクトリに保存しました。私の場合 snake.bat。 CMDターミナルを起動したら、c:\snake.batとCMDプロンプトがアナコンダプロンプトに変わります。

0
Mike C.

当時、@ Samuelが公式に認めた答えが正解でした。

しかし、VSコードは それを処理するためのより良い方法 を提供しています。

つまり、ユーザー設定を開いて、次のコード行を追加します。

    "terminal.integrated.inheritEnv": false,

これにより、使用しているすべてのPython環境マネージャー(例:venv、condaなど))を踏みにじることがなくなります。

0
Mike Williamson