UbuntuのVisualStudioCodeでPythonでVirtualenvを使用する


86

私はPythonプロジェクトを持っており、ナビゲーション/オートコンプリートはプロジェクト内のファイル内で完全に機能します。ナビゲーション/オートコンプリートがそのvirtualenv内のパッケージで機能するようにvirtualenvを指定したいと思います。

これをsettings.pyで試しましたが、ナビゲーション/オートコンプリートが機能しません。また"python.pythonPath":"~/dev/venvs/proj/bin/python、元のナビゲーション/オートコンプリートを強制終了に設定します。

{
    "editor.rulers": [80,100],
    "python.autoComplete.extraPaths": [
        "~/dev/venvs/proj",
        "~/dev/venvs/proj/lib"
     ]
}

設定をいじりたくない場合は、このようなシバンも機能します:#!bin / python3
Alex R

youtu.be/6YLMWU-5H9o?t=550ここでDanTaylorがvscodeでvirtualenvを実行する方法を説明しています
test

最新バージョンのコードの場合、左下のpythonインタープリターをクリックすると、上部中央にコマンドパレットが表示され、[Pythonインタープリターへのパスを入力]を選択し、[検索...]を選択して、〜/ yourvenvパスで検索します。 / bin / python、私はpython3.8を持っています
JCQian

回答:


96

拡張機能の最新のアップデートで"python.pythonPath"、次のように指定するだけです。の値は"python.autoComplete.extraPaths"実行時に決定されますが、カスタムパスを自由に指定できます。

必要な変更が加えられたら、VSCodeを再起動することを忘れないでください。

{
    "editor.rulers": [80,100],
    "python.pythonPath":"~/dev/venvs/proj/bin/python"
}

2
FWIW少なくともpylintには絶対パスを使用する必要がありました
Kat

6
ワークスペースの設定ですか?ワークスペースのサブツリーだけに設定を設定する方法はありますか?
yucer 2017

3
プロジェクトごとにこれを行うことができますか?
holms 2018年

1
上記のドンは正しいです。VS CodeのWebサイトを再確認してください:code.visualstudio.com/docs/python/…–
Ricardo Anjos

5
@holmsうん、ワークスペース設定を編集したい(.vscode/settings.json
Atav32 2018

91

2016年9月の時点で(拡張機能のGithubリポジトリドキュメントによると)、vscode内からコマンドを実行するだけで、既知のインタープリター(プロジェクトの仮想環境内のものを含む)の自動生成リストからインタープリターを選択できます。

この機能の使い方は?

  • コマンドパレット(F1)Python: Select Workspace Interpreterからコマンド(*)を選択します。

  • 上記のコマンドを選択すると、検出されたインタプリタのリストがリストに表示されquick pickます。

  • このリストからインタプリタを選択すると、settings.jsonファイルが自動的に更新されます

(*)このコマンドはPython: Select Interpreter、VSCの最新リリースで更新されました(@nngeekに感謝)。
また、選択したインタープリターがステータスバーの左側に表示されることに注意してください(例:Python 3.6 64ビット)。これは、クリックしてインタプリタの選択機能をトリガーできるボタンです。


3
悲しいことに、リストに新しいインタプリタを追加することはできません...それも可能ですか?
本物のファファ2017年

@genuinefafaコードについてはよくわかりませんが、リンクしたリポジトリのドキュメントでは、インタープリターが標準パス(/ usr / local / bin、/ usr / sbin、/ sbin)、仮想環境で検索されていることがわかりました。現在のプロジェクトとコンダ環境。通訳をこの場所の1つに追加して、自動的に取得できるようにすることもできます。しかし、私はただ推測しています。
ダニエルF.

@DanielFはいい考えです。私はそれを解決しますが、プロジェクト環境を指すディレクトリを手動で設定します。$PATHアイデアは(実際には何である動作しませんでしたworkonスクリプトが実行する必要があります)。これは数週間前にテストされましたが、新しいリリースで解決するかどうかはわかりません。
本物のファファ2017

4
virtualenvを見つけるには、をpython.venvPath設定する必要があります。
Mahmoud Hanafy 2017

2
2017年12月のコード1.18.1の時点で、コマンドはPython: Select Interpreterコマンドパレットからのものです。検索するしばらく苦労python workspaceコマンドリストから...
nngeek

34

VSCodeの公式Python拡張機能をインストールしている場合は、最新のVSCodeで非常にシンプル です

Shift+ Command+P

タイプ:Python:インタプリタを選択

仮想環境を選択します。

公式サイト


14
残念ながら、このコマンドはローカル仮想環境を一覧表示できません。
アントニン

@Antonin最新バージョンのvscodeでテストしましたが、機能します。あなたはMacまたは他のシステムにいますか、そしてあなたのエラーは何ですか?
DingLi 2018

1
確かにMacでは、@ DingLiに感謝します。これを設定した後、機能しました:"python.venvFolders": [ "${rootPath}", "envs", ".pyenv", ".direnv" ],
Antonin

1
仮想ENVSため@Antonin、のsswordの回答を参照してください
carton.swing

2
はい、私は本当にあなたと他のみんなが「非常に単純」と言うのをやめたことを望みます。仮想環境はリストされていません。インタープリターのみ、2019.6macOSバージョン。そしてこれは、Pythonインタープリターだけでなく、virtualenvという質問です。@sswordには正解があります。または、少なくとも、使用するPython実行可能ファイルだけでなく、virtualenvベースの残りの構成がもたらされることを願っています。
JLPeyret19年

34

Visual Studio Code用の最新のPython拡張機能には、venvPath設定があります。

// Path to folder with a list of Virtual Environments (e.g. ~/.pyenv, ~/Envs, ~/.virtualenvs).
  "python.venvPath": "",

Mac OS Xでは、Python構成に移動しCode > Preferences > Settingsて下にスクロールします。

"python.venvPath: "",左側の鉛筆を探してクリックし、ユーザー設定を開きます。最後に、仮想環境を保存する場所へのパスを追加します。

virtuanenvwrapperを使用している場合、またはすべての仮想env設定を1つのフォルダーに入れている場合は、これが最適です。

構成したら"python.venvPath"、VSCを再起動します。次に、コマンドパレットを開き、「Python:SelectInterpreter」を探します。この時点で、追加した仮想環境に関連付けられたインタープリターが表示されます。


13

もう1つの方法は、virtualenvが設定された端末からVSCを開き、F1 Python: Select Interpreter必要なvirtualENVを実行して選択する必要があることです。

virtualENV


8
これは私にはうまくいかないようです。設定ファイルが必要です。足りないものはありますか?
マッケイ

1
私はこのメソッドをうまく使用しましたが、コード-aを実行する必要がありました。
YoFlynn 2018年

1
これにより、適切なpythonインタープリターが得られましたが、残りのvenvが見つかりませんでした。私のvenvディレクトリ名「ve」をpython.venvFoldersに追加すると修正されました。
user1055568 2018

1
私の以前のコメントは間違っていました。私はvenvを見つけられないと間違えた他の問題を抱えていました。
user1055568 2018

7

暫定的な答え。私は仮想環境の絶対パスを入れましたpython実行可能ファイルもパッケージを持っています。その後、VSコードを再起動しました。

絶対パスのハードコーディングを回避するために$ {workspaceRoot}を取得しようとしています。成功した場合は、助けてください。

{
    "editor.rulers": [80,100],
    "python.pythonPath": "/home/jesvin/dev/ala/venv/bin/python",
    "python.autoComplete.extraPaths": [
        "/home/jesvin/dev/ala/venv/lib/python2.7",
        "/home/jesvin/dev/ala/venv/lib/python2.7/site-packages"
     ]
}


4

このページの他の人が求めていたワークスペース設定を利用することができました。

環境設定、⌘+ Ppython.pythonPathで、検索バーで検索します。

次のようなものが表示されます。

// Path to Python, you can use a custom version of Python by modifying this setting to include the full path.
"python.pythonPath": "python"

次に、ウィンドウの右側にある[ワークスペース設定]タブをクリックします。これにより、設定が現在のワークスペースにのみ適用されるようになります。

その後、「python.pythonPath」の横にある鉛筆アイコンをクリックします。これにより、設定がワークスペース設定にコピーされます。

値を次のように変更します。

"python.pythonPath": "${workspaceFolder}/venv"

2

a)Visual StudioCodeのデフォルトの仮想環境パス設定を変更します。これは「python.venvPath」と呼ばれます。これを行うには、コード->設定に移動し、下にスクロールしてPython設定を表示します。

b)VSCodeを再起動します

c)Shift + Command + Pを実行してPythonと入力すると、[インタープリター]を選択すると、仮想環境のリストが表示されます。


1

(2018.03までに)コードインサイダーにあるようです、python.venvFoldersと呼ばれるディレクティブが導入されました:

  "python.venvFolders": [
    "envs",
    ".pyenv",
    ".direnv"
  ],

必要なのは、virtualenvフォルダー名を追加することだけです。


1

コードバージョン1.34.0(1.34.0)を使用するMac OSXでは、VSCodeに仮想環境を認識させるために、次のことを行う必要がありました。

仮想環境の場所(ml_venvという名前):

/Users/auser/.pyvenv/ml_venv

auser@HOST:~/.pyvenv$ tree -d -L 2
.
└── ml_venv
    ├── bin
    ├── include
    └── lib

Settings.jsonに次のエントリを追加しました。 "python.venvPath": "/Users/auser/.pyvenv"

IDEを再起動すると、仮想環境からインタープリターが表示されます。 ここに画像の説明を入力してください


絶対パスの使用が重要です。これは私のために働いた。ありがとう
AlexanderSuraphel19年

0

これはYoutubeから入手したPythonVSのセットアップ... Venv

OK、ビデオは本当に私をそれほど助けませんでした、しかし...(ビデオを投稿した人による)下の最初のコメントは非常に理にかなっていて、純粋な金です。

基本的に、VSの内蔵ターミナルを開きます。次にsource <your path>/activate.sh、コマンドラインからvenvを選択する通常の方法。適切なスクリプトファイルを見つけて起動するための事前定義されたbash関数があり、それは問題なく機能しました。

そのYTコメントを直接引用する(すべてaneuris apの功績):

(実際に必要なのは手順5〜7だけです)

1- Open your command line/terminal and type pip virtualenv.
2. Create a folder in which the virtualenv will be placed .
3. cd to the script folder in the virtualenv and run activate.bat (CMD).
4. deactivate to turn of the virtualenv (CMD).
5. open the project in VS Code  and use its built-in terminal to cd to the script folder in you virtualenv.
6. type source activates (in vs code I use the git terminal).
7. deactivate to turn off the virtualenv.

お気づきかもしれませんが、彼はについて話しているactivate.bat。したがって、Macで動作し、Windowsでも動作する場合は、かなり堅牢でポータブルである可能性があります。😀

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.