Python 環境Python environments

Visual Studio の Python は、複数の Python 環境の管理を容易にし、異なるプロジェクトで環境を簡単に切り替えられるようにします。Python in Visual Studio makes it easy to manage multiple Python environments and easily switch between them for different projects.

注: Visual Studio の Python を初めて使う場合は、以下のトピックでこのトピックの基礎になっている情報を参照してください。Note: if you're new to Python in Visual Studio, see the following topics first as this present discussion relies upon them:

Python コードを常に実行する Python "環境" は、インタープリター、ライブラリ (通常は Python 標準ライブラリ)、およびインストールされているパッケージのセットで構成されています。A Python environment, in which you always run Python code, consists of an interpreter, a library (typically the Python Standard Library), and a set of installed packages. これらのコンポーネント全体により、有効な言語の構造と構文、アクセスできるオペレーティング システム機能、使うことができるパッケージが決まります。Together these components determine which language constructs and syntax are valid, what operating-system functionality you can access, and which packages you can use.

Visual Studio では、環境には環境のライブラリ用の IntelliSense データベースも含まれ、Visual studio エディターで import のようなステートメントを入力すると、使用可能なライブラリおよびそのライブラリ内のモジュールの一覧が自動的に表示されます。In Visual Studio, an environment also includes an IntelliSense database for an environment's libraries, such that typing a statement like import in the Visual Studio editor automatically displays a list of available libraries as well as the modules within those libraries.

多くの場合、開発者は単一のグローバルな Python 環境のみを使います。Oftentimes, developers use only a single, global Python environment. しかし、このトピックで説明するような、複数のグローバル環境、プロジェクト固有の環境、仮想環境の管理が必要になる場合もあります。Other developers, however, need to manage multiple global environments, project-specific environments, and virtual environments as explained in this topic:

概要のビデオについては、「Managing Python Environments」 ( Python 環境の管理) (Microsoft Virtual Academy、2 分 35 秒) をご覧ください。For a video introduction, see Managing Python Environments (Microsoft Virtual Academy, 2m35s).

Python インタープリターの選択とインストールSelecting and installing Python interpreters

Visual Studio 2017 を除き、Python のサポートに Python インタープリターは付属しないので、コードを実行するには次のいずれかをインストールする必要があります。Except with Visual Studio 2017, Python support does not come with a Python interpreter, so you need to install one of the following to run your code. 一般に、Visual Studio は新しくインストールされたインタープリターを自動的に検出し、それぞれの環境をセットアップします。In general, Visual Studio automatically detects newly installed interpreters and sets up an environment for each. インストール済みの環境が検出されない場合は、「既存インタープリター用の環境の作成」を参照してください。If it does not detect an installed environment, see Creating an environment for an existing interpreter.

インタープリターInterpreter 説明Description
CPythonCPython "ネイティブ" で最もよく使われるインタープリターであり、32 ビット バージョンと 64 ビット バージョンがあります (32 ビットを推奨)。The "native" and most commonly-used interpreter, available in 32-bit and 64-bit versions (32-bit recommended). 最新の言語機能、Python パッケージの最大限の互換性、完全なデバッグ サポート、および IPython との相互運用性が含まれています。Includes the latest language features, maximum Python package compatibility, full debugging support, and interop with IPython. Should I use Python 2 or Python 3?」(Python 2 と Python 3 のどちらを使うか) もご覧ください。See also: Should I use Python 2 or Python 3?. Visual Studio 2015 以前では、Python 3.6 をサポートしていないため、"Python バージョン 3.6 はサポートされていません" エラーが発生する場合があることに注意してください。Note that Visual Studio 2015 and earlier do not support Python 3.6 and can give the error "Unsupported python version 3.6". 代わりに 3.5 以前の Python を使用します。Use Python 3.5 or earlier instead.
IronPythonIronPython Python の .NET の実装であり (32 ビット バージョンと 64 ビット バージョン)、C#/F#/Visual Basic の相互運用機能、.NET API へのアクセス、標準 Python デバッグ (ただし、C++ 混合モードのデバッグはありません)、IronPython/C# の混合デバッグが提供されます。A .NET implementation of Python, available in 32-bit and 64-bit versions, providing C#/F#/Visual Basic interop, access to .NET APIs, standard Python debugging (but not C++ mixed-mode debugging), and mixed IronPython/C# debugging. ただし、IronPython は仮想環境をサポートしていません。IronPython, however, does not support virtual environments.
AnacondaAnaconda Python を利用するオープン データ サイエンス プラットフォームであり、最新バージョンの CPython と、インストールが困難なパッケージのほとんどを含みます。An open data science platform powered by Python, and includes the latest version of CPython and most of the difficult-to-install packages. 他のインタープリターに決定できない場合にお勧めします。We recommend it if you can't otherwise decide.
PyPyPyPy Python の高パフォーマンスなトレースの JIT 実装であり、実行時間の長いプログラム、およびパフォーマンスに問題があるが他の解決策が見つからない場合に、適しています。A high-performance tracing JIT implementation of Python that's good for long-running programs and situations where you identify performance issues but cannot find other resolutions. Visual Studio で動作しますが、高度なデバッグ機能のサポートには制限があります。Works with Visual Studio but with limited support for advanced debugging features.
JythonJython Java 仮想マシン (JVM) での Python の実装です。An implementation of Python on the Java Virtual Machine (JVM). IronPython に似ており、Jython で実行されるコードは Java のクラスおよびライブラリとやり取りできますが、CPython 用の多くのライブラリは使用できない場合があります。Similar to IronPython, code running in Jython can interact with Java classes and libraries, but may not be able to use many libraries intended for CPython. Visual Studio で動作しますが、高度なデバッグ機能のサポートには制限があります。Works with Visual Studio but with limited support for advanced debugging features.

Python 環境用に新しい検出形式を提供したい開発者は、「PTVS Environment Detection」(PTVS 環境の検出) (github.com) をご覧ください。Developers that want to provide new forms of detection for Python environments, see PTVS Environment Detection (github.com).

Visual Studio での Python 環境の管理Managing Python environments in Visual Studio

[Python Environments (Python 環境)] ウィンドウを開くには、次のいずれかの操作を行います。To open the Python Environments window, do one of the following:

  1. [表示] > [その他のウィンドウ] > [Python Environments (Python 環境)] メニュー コマンドを選びます。Select the View > Other Windows > Python Environments menu command.
  2. ソリューション エクスプローラーでプロジェクトの [Python Environments (Python 環境)] を右クリックし、[View All Python Environments (すべての Python 環境の表示)] を選びます。Right-click the Python Environments for a project in Solution Explorer and select View All Python Environments:

    ソリューション エクスプローラーの [View All Python Environments (すべての Python 環境の表示)] コマンド

いずれの場合も、[Python Environments (Python 環境)] ウィンドウはソリューション エクスプローラーの兄弟タブとして表示されます。In either case, the Python Environments window appears as a sibling tab to Solution Explorer:

[Python Environments (Python 環境)] ウィンドウ

上の例は、Python 3.4 (32 ビット CPython) と共に IronPython 2.7 の 32 ビットおよび 64 ビット バージョンがインストールされることを示しています。The example above shows that Python 3.4 (32-bit CPython) is installed along with 32-bit and 64-bit versions of IronPython 2.7. この場合、太字で表示される既定の環境は Python 3.4 であり、すべての新しいプロジェクトに使われます。In this case, the default environment in boldface is Python 3.4, which is used for any new projects. 環境が何も表示されない場合は、Visual Studio 2015 以降に Python Tools for Visual Studio はインストールされていますが、Python インタープリターはインストールされていないことを意味します (前の「Python インタープリターの選択とインストール」を参照)。If you don't see any environments listed, it means that you've installed Python Tools for Visual Studio in Visual Studio 2015 or earlier, but haven't installed a Python interpreter (see Selecting and installing Python interpreters above).

ヒント

上記のように、[Python 環境] ウィンドウの幅が狭いときは、環境が上部に一覧表示され、さまざまなタブは下部に表示されます。When the Python Environments window is narrow, as shown above, the environments are listed on the top and the various tabs on the bottom. ただし、ウィンドウを十分に広げた方が作業しやすくなります。Expanding the window enough, however, changes to a wide view that you may find more convenient to work with.

[Python Environments (Python 環境)] ウィンドウを広げた表示

注意

Visual Studio はシステム サイト パッケージのオプションを尊重しますが、Visual Studio 内からそれを変更する方法は用意されていません。Although Visual Studio respects the system-site-packages option, it doesn't provide a way to change it from within Visual Studio.

既存インタープリター用の環境の作成Creating an environment for an existing interpreter

Visual Studio では通常、(「PEP 514 - Python registration in the Windows registry」 (PEP 514 - Windows レジストリでの Python の登録) に従って) レジストリをチェックして、インストールされている Python インタープリターを見つけます。Visual Studio normally locates an installed Python interpreter by checking the registry (following PEP 514 - Python registration in the Windows registry). ただし、インタープリターが標準以外の方法でインストールされている場合は、Visual Studio で見つけられないことがあります。However, Visual Studio may not find it if the interpreter is installed in a non-standard fashion. そのような場合は、次のようにして Visual Studio にインタープリターを直接指定できます。In such cases, you can point Visual Studio directly to the interpreter as follows:

  1. [Python Environments (Python 環境)] ウィンドウで [+ Custom... (+ カスタム...)] を選びます。新しい環境が作成されて、[Configure (構成)] タブが開きます (後で説明します)。Select + Custom... in the Environments Window, which creates a new environment and opens the Configure tab described below.)

    新しいカスタム環境の既定のビュー

  2. [Description (説明)] フィールドに環境の名前を入力します。Enter a name for the environment in the Description field.

  3. [Prefix path (プレフィックスのパス)] フィールドでは、インタープリターのパスを入力するか参照します。Enter or browse to the path of the interpreter in the Prefix path field.
  4. [Auto Detect (自動検出)] を選んで Visual Studio に残りのフィールドを設定させるか、または手動で設定します。Select Auto Detect to have Visual Studio complete the remaining fields, or complete them manually.
  5. [Apply (適用)] を選んで環境を保存します。Select Apply to save the environment.
  6. 環境を削除する場合は、[Configure (構成)] タブの [Remove (削除)] コマンドを選びます。自動検出された環境ではこのオプションは提供されません。If you need to remove the environment, select the Remove command on the Configure tab. Auto-detected environments do not provide this option. 詳細については、次のセクションを参照してください。See the next section for more information.

既存のインタープリターの移動Moving an existing interpreter

既存のインタープリターをファイル システム上の新しい場所に移動する場合、Visual Studio は変更を自動的に検出しません。If you move an existing interpreter to a new location on the file system, Visual Studio doesn't automatically detect the change. 環境ウィンドウでリストを更新するには、手動の手順が必要になります。Manual steps are necessary to update the list in the Environment window:

  • そのインタープリターの環境を最初に作成した場合は、新しい場所を指すようにその環境を編集します。If you originally created an environment for that interpreter, edit that environment to point to the new location.

  • 環境が最初に自動検出された場合、Visual Studio で調べるレジストリ エントリを作成した別のインストーラー プログラムでコンピューターにインストールされています。If the environment was originally auto-detected, it was installed on the computer with a distinct installer program that created the registry entries that Visual Studio examines. この場合は、まず、Python インタープリターを元の場所に復元します。In this case, first restore the Python interpreter to its original location. 次に、インストーラーを使用してアンインストールします。これで、レジストリ エントリがクリアされます。Then uninstall it using the installer, which clears the registry entries. 次に、目的の場所にインタープリターを再インストールします。Then reinstall the interpreter at the desired location. Visual Studio を再起動すると、新しい場所が自動検出されます。Restart Visual Studio and it should auto-detect the new location. このプロセスによって、確実にインストーラーの他の副作用が正しく適用されます。This process ensures that any other side effects of the installer are properly applied.

[Overview (概要)] タブOverview tab

環境の基本的な情報とコマンドを提供します。Provides basic information and commands for the environment:

[Python Environments (Python 環境)] の [Overview (概要)] タブ

コマンドCommand 説明Description
Make this environment the default for new projects (この環境を新しいプロジェクトの既定にする)Make this environment the default for new projects アクティブな環境を設定します。これにより、IntelliSense データベースが読み込まれる間、Visual Studio がしばらく応答しなくなる場合があります。Sets the active environment, which may cause Visual Studio to briefly become non-responsive while it loads the IntelliSense database. 多くのパッケージがある環境では、長時間応答しなくなる可能性があります。Environments with many packages may be non-responsive for longer.
ディストリビューターの Web サイトに移動するVisit the distributor's website Python のディストリビューションで提供された URL をブラウザーで開きます。Opens a browser to the URL provided by the Python distribution. たとえば、Python 3.x では python.org に移動します。Python 3.x, for example, goes to python.org.
対話型ウィンドウを開くOpen interactive window この環境用の対話型 (REPL) ウィンドウを Visual Studio 内で開き、すべてのスタートアップ スクリプト (後述) を適用します。Opens the interactive (REPL) window for this environment within Visual Studio, applying any startup scripts (see below).
IPython 対話モードを使用するUse IPython interactive mode 設定すると、IPython では対話型ウィンドウが既定で開きます。When set, opens the interactive window with IPython by default. インライン プロットおよびヘルプを表示する name? やシェル コマンド用の !command などの拡張 IPython 構文が有効になります。This enabled inline plots as well as the extended IPython syntax such as name? to view help and !command for shell commands. Anaconda ディストリビューションを使うときは、追加パッケージが必要なので、このオプションを使うことをお勧めします。This option is recommended when using an Anaconda distribution, as it requires extra packages. 詳しくは、「対話型ウィンドウでの IPython の使用」をご覧ください。For more information, see Using IPython in the Interactive Window.
PowerShell で開くOpen in PowerShell PowerShell コマンド ウィンドウでインタープリターを開始します。Starts the interpreter in a PowerShell command window.
(フォルダー リンク)(Folder links) 環境のインストール フォルダー、python.exe インタープリター、pythonw.exe インタープリターに簡単にアクセスできます。Provide you quick access to the environment's installation folder, the python.exe interpreter, and the pythonw.exe interpreter. インストール フォルダーはエクスプローラーで開き、2 つのインタープリターはコンソール ウィンドウが開きます。The first opens in Windows Explorer, the latter two open a console window.

スタートアップ スクリプトStartup scripts

日常のワークフローで対話型ウィンドウを使っていると、ヘルパー関数を作成して繰り返し使うことがあります。As you use interactive windows in your everyday workflow, you likely develop helper functions that you use regularly. たとえば、Excel でデータ フレームを開く関数を作成し、そのコードをスタートアップ スクリプトとして保存して、対話型ウィンドウでいつでも使えるようにするといった場合です。For example, you may create a function that opens a DataFrame in Excel, and then save that code as a startup script so that it's always available in the interactive window.

スタートアップ スクリプトにはインポート、関数定義、その他文字どおりどのようなコードでも含めることができ、対話型ウィンドウは自動的にそれを読み込んで実行します。Startup scripts contain code that the interactive window loads and runs automatically, including imports, function definitions, and literally anything else. このようなスクリプトは、2 つの方法で参照されます。Such scripts are referenced in two ways:

  1. 環境をインストールすると、Visual Studio は Documents\Visual Studio 2017\Python Scripts\<environment> フォルダーを作成します。<environment> は、環境の名前と同じです。When you install an environment, Visual Studio creates a folder Documents\Visual Studio 2017\Python Scripts\<environment> where <environment&gt' matches the name of the environment. [対話型のスクリプトを確認する] コマンドを使って、環境固有のフォルダーに簡単に移動できます。You can easily navigate to the environment-specific folder with the Explore interactive scripts command. その環境の対話型ウィンドウを開始すると、このフォルダーで見つかったすべての .py ファイルがアルファベット順に読み込まれて実行されます。When you start the interactive window for that environment, it loads and runs whatever .py files are found here in alphabetical order.

  2. [ツール] > [オプション] > [Python ツール] > [対話型ウィンドウ] タブ (「対話型ウィンドウ オプション」を参照) の[スクリプト] コントロールでは、すべての環境で読み込まれて実行されるスタートアップ スクリプトの追加フォルダーを指定します。The Scripts control in Tools > Options > Python Tools > Interactive Windows tab (see Interactive windows options) is intended to specify an additional folder for startup scripts that are loaded and run in all environments. ただし、この機能は現時点では機能しません。However, this feature doesn't work at present.

[Configure (構成)] タブConfigure tab

次の表で説明するような詳細が表示されます。If shown, contains details as described in the table below. このタブが存在しない場合は、Visual Studio がすべての詳細情報を自動的に管理していることを意味します。If this tab isn't present, it means that Visual Studio is managing all the details automatically.

[Python Environments (Python 環境)] の [Configure (構成)] タブ

フィールドField 説明Description
説明Description 環境の名前です。The name to give the environment.
Prefix path (プレフィックスのパス)Prefix path インタープリターの基本フォルダーの場所です。The base folder location of the interpreter. この値を入力して [自動検出] をクリックすると、Visual Studio が他のフィールドを設定します。By filling this value and clicking Auto Detect, Visual Studio attempts to fill in the other fields for you.
Interpreter Path (インタープリターのパス)Interpreter path インタープリターの実行可能ファイルへのパスです。通常は、プレフィックスのパスの後に python.exe を付けたものです。The path to the interpreter executable, commonly the prefix path followed by python.exe
Windowed interpreter (ウィンドウ形式のインタープリター)Windowed interpreter コンソールではない実行可能ファイルへのパスです。多くの場合、プレフィックスのパスの後に pythonw.exe を付けたものです。The path to the non-console executable, often the prefix path followed by pythonw.exe.
Library path (ライブラリのパス)Library path 標準ライブラリのルートを指定します。ただし、Visual Studio がさらに正確なパスをインタープリターに要求できる場合、この値は無視される可能性があります。Specifies the root of the standard library, but this value may be ignored if Visual Studio is able to request a more accurate path from the interpreter.
Language version (言語バージョン)Language version ドロップダウン メニューから選びます。Selected from the drop-down menu.
アーキテクチャArchitecture 通常は自動的に検出されて設定されます。されない場合は 32 ビットまたは 64 ビットを指定します。Normally detected and filled in automatically, otherwise specifies 32-bit or 64-bit.
Path environment variable (パス環境変数)Path environment variable 検索パスを探すためにインタープリターが使う環境変数です。The environment variable that the interpreter uses to find search paths. Visual Studio は、Python を開始するとき、プロジェクトの検索パスが含まれるように変数の値を変更します。Visual Studio changes the value of the variable when starting Python so that it contains the project's search paths. 通常、このプロパティは PYTHONPATH に設定する必要がありますが、一部のインタープリターでは別の値が使われます。Typically this property should be set to PYTHONPATH, but some interpreters use a different value.

[pip] タブpip tab

環境にインストールされているパッケージを管理し、ユーザーが新しいパッケージ (すべての依存関係を含みます) を検索してインストールできるようにします。Manages the packages installed in the environment, allowing you also to and search for and install new ones (including any dependencies). 検索機能は、現在インストールされているパッケージと PyPI をフィルター処理します。Searching filters your currently installed packages and PyPI. 検索ボックスに、pip install コマンドと --user--no-deps などのフラグを直接入力することもできます。You can also directly enter any pip install command in the search box, including flags such as --user or --no-deps.

[Python Environments (Python 環境)] の [pip] タブ

パッケージをインストールすると、ファイル システム上の環境の Lib フォルダー内にサブフォルダーが作成されます。Installing a package creates subfolders within the environment's Lib folder on the file system. たとえば、Python 3.6 を c:\Python36 にインストールすると、パッケージは c:\Python36\Lib にインストールされます。Anaconda3 を c:\Program Files\Anaconda3 にインストールすると、パッケージは c:\Program Files\Anaconda3\Lib にインストールされます。For example, if you have Python 3.6 installed in c:\Python36, packages are installed in c:\Python36\Lib; if you have Anaconda3 installed in c:\Program Files\Anaconda3 then packages are installed in c:\Program Files\Anaconda3\Lib.

後者の場合、ファイル システムの保護された領域 c:\Program Files に環境があるため、Visual Studio は、パッケージ サブフォルダーを作成できるように、管理者特権で pip install を実行する必要があります。In the latter case, because the environment is located in a protected area of the file system, c:\Program Files, Visual Studio must run pip install elevated to allow it to create package subfolders. 管理者特権への昇格が必要な場合、Visual Studio により "この環境でパッケージのインストール、更新、削除を行うには、管理者特権が必要な場合があります" というプロンプトが表示されます。When elevation is required, Visual Studio displays the prompt, "Administrator privileges may be required to install, update or remove packages for this environment":

パッケージ インストールのための昇格時のプロンプト

[今すぐ昇格] を選ぶと、1 回の操作について pip に管理者特権が付与され、アクセス許可を求めるオペレーティング システムのプロンプトも対象になります。Elevate now grants administrative privileges to pip for a single operation, subject also to any operating system prompts for permissions. [管理者特権なしで続行] を選ぶと、パッケージのインストールは試みられますが、pip がフォルダーを作成しようとすると、"エラー: 'C:\Program Files\Anaconda3\Lib\site-packages\png.py' を作成できませんでした: アクセス許可が拒否されました" のような出力で失敗します。Selecting Continue without Administrator privileges attempts to install the package, but pip fails when trying to create folders with output such as "error: could not create 'C:\Program Files\Anaconda3\Lib\site-packages\png.py': Permission denied."

[パッケージのインストール時か削除時に必ず昇格] を選ぶと、対象の環境ではダイアログが表示されなくなります。Selecting Always elevate when installing or removing packages prevents the dialog from appearing for the environment in question. 再びダイアログが表示されるようにするには、[ツール] > [オプション] > [Python ツール] > [全般] に移動し、[永続的に表示されないすべてのダイアログをリセットする] ボタンを選びます。To make the dialog appear again, go to Tools > Options > Python Tools > General and select the button, Reset all permanently hidden dialogs.

同じオプション タブでは、[常に管理者として pip を実行する] を選んで、すべての環境でダイアログを非表示にすることもできます。In that same options tab, you can also select Always run pip as administrator to suppress the dialog for all environments. Options - General tab」([全般] タブのオプション) をご覧ください。See Options - General tab.

[IntelliSense] タブIntelliSense tab

IntelliSense 入力候補データベースの現在の状態を示します。Shows the current status of the IntelliSense completion database:

[Python Environments (Python 環境)] の [IntelliSense] タブ

データベースには環境内のすべてのライブラリのメタデータが含まれ、IntelliSense の速度が向上しメモリ使用量が減ります。The database contains metadata for all the environment's libraries and improves IntelliSense speed and reduces memory usage. Visual Studio は新しい環境を検出すると (またはユーザーが追加すると)、ライブラリのソース ファイルを分析することで、データベースのコンパイルを自動的に開始します。When Visual Studio detects a new environment (or you add one), it automatically begins to compile the database by analyzing the library source files. インストールされている内容により、この処理には 1 分から 1 時間以上かかることがありますThis process can take anywhere from a minute to an hour or more depending on what's installed. (たとえば、Anaconda には多くのライブラリが付属しており、データベースのコンパイルに少し時間がかかります)。完了すると、詳細な IntelliSense が提供され、新しいライブラリをインストールするまでデータベースを再度更新する ([Refresh DB](DB の更新) ボタンで) 必要はありません。(Anaconda, for example, comes with many libraries and takes some time to compile the database.) Once complete, you get detailed IntelliSense and don't need to refresh the database again (with the Refresh DB button) until you install more libraries.

データがコンパイルされていないライブラリには、! が表示されます。環境のデータベースが完成していない場合は、!Libraries for which data haven't been compiled are marked with a !; if an environment's database isn't complete, a ! メイン環境リストのライブラリの横に表示されます。also appears next to it in the main environment list.

グローバル環境Global environments

グローバル (またはシステム全体) 環境は、コンピューターのすべてのプロジェクトで利用できます。Global (or system-wide) environments are available to all of your projects on a machine. 通常 Visual Studio はグローバル環境を自動的に検出し、[Python Environments (Python 環境)] ウィンドウで見ることができます。Visual Studio usually detects global environments automatically, and they can be viewed in the Python Environments window. 表示されない場合は、前の「Visual Studio での Python 環境の管理」で説明したように手動で環境を追加できます。If not, you can add an environment manually as described earlier under Managing Python environments in Visual Studio.

Visual Studio は、すべての新規プロジェクトの実行、デバッグ、構文チェック、インポート表示、メンバー入力候補、および環境を必要とするその他のタスクに、既定の環境を使います。Visual Studio uses the default environment for all new projects for executing, debugging, checking syntax, displaying import and member completions, and any other tasks that require an environment. 次に説明するように、既定の環境を変更すると、プロジェクト固有環境が追加されていないすべてのプロジェクトに影響します。Changing the default environment affects all projects that have not had a project-specific environment added, as described next.

プロジェクト固有環境Project-specific environments

プロジェクト固有環境を指定すると、プロジェクトは常にその特定の環境で実行され、既定のグローバル環境は無視されます。Project-specific environments ensure that a project always runs in a particular environment, ignoring the default global environment. たとえば、グローバル既定環境が CPython である場合に、IronPython と、グローバル環境にインストールされていない特定のライブラリがプロジェクトで必要なときは、プロジェクト固有環境が必要になります。For example, if the global default environment is CPython but a project requires IronPython and certain libraries that aren't installed in the global environment, then a project-specific environment is necessary.

プロジェクト環境は、ソリューション エクスプローラーの [Python Environments (Python 環境)] ノードに一覧表示されます。Project environments are listed in Solution Explorer under the Python Environments node. 太字のエントリは現在アクティブであり、デバッグ、インポートとメンバー入力候補、構文チェック、および環境を必要とするその他のタスクに使われます。The bold entry is currently active, and Visual Studio uses it for debugging, import and member completions, syntax checking, and any other tasks that require an environment:

ソリューション エクスプローラーに表示されたプロジェクト環境

プロジェクトに対して別の環境をアクティブ化するには、その環境を右クリックして、[Activate Environment (環境のアクティブ化)] を選びます。To activate a different environment for the project, right-click that environment and select Activate Environment.

[Python Environments (Python 環境)] を右クリックして [Add/Remove Python Environments... (Python 環境の追加/削除...)] を選ぶことで、任意のグローバル環境をプロジェクト環境として追加できます。表示される一覧で、プロジェクトで使用可能な環境を選択または選択解除できます。Any global environment can be added as a project environment by right-clicking Python Environments and selecting Add/Remove Python Environments.... From the displayed list you can select or deselect those environments that are available in your project.

[Add/Remove Python Environments (Python 環境の追加/削除)] ダイアログ

ソリューション エクスプローラーでは、環境を展開して、インストールされているパッケージ (環境をアクティブにすると、コードでインポートして使用できるもの) を表示することもできます。In Solution Explorer, you can also expand the environment to show its installed packages (those you can import and use in your code when the environment is active):

ソリューション エクスプローラーでの環境の Python パッケージ

新しいパッケージをインストールするには、環境を右クリックし、[Install Python Package... (Python パッケージのインストール...)] を選んで、目的のパッケージの名前を入力します。To install new packages, right-click the environment, select Install Python Package..., and enter the name of the desired package. パッケージ (および依存関係) は Python Package Index (PyPI) からダウンロードされます。ここでパッケージを検索することもできます。Packages (and dependencies) are downloaded from the Python Package Index (PyPI), where you can also search for available packages. Visual Studio のステータス バーと出力ウィンドウには、インストールに関する情報が表示されます。Visual Studio's status bar and output window shows information about the install. パッケージをアンインストールするには、パッケージを右クリックして [Remove (削除)] を選びます。To uninstall a package, right-click it select Remove.

注意

Python のパッケージ管理サポートは、現在、Python のコア開発チームによって開発中です。Python's package management support is currently under development by the core Python development team. 表示されるエントリは常に正確であるとは限らず、インストールとアンインストールが信頼できない場合、または使用できない場合があります。The displayed entries may not always be accurate, and installation and uninstallation may not be reliable or available. Visual Studio は、使用可能な場合は pip パッケージ マネージャーを使い、必要な場合はダウンロードしてインストールします。Visual Studio uses the pip package manager if available, and downloads and installs it when required. Visual Studio は、easy_install パッケージ マネージャーを使うこともできます。Visual Studio can also use the easy_install package manager. コマンド ラインから pip または easy_install を使ってインストールされたパッケージも表示されます。Packages installed using pip or easy_install from the command line are also displayed.

ヒント

pip がパッケージのインストールに失敗する一般的な状況は、パッケージの *.pyd ファイルにネイティブ コンポーネントのソース コードが含まれる場合です。A common situation where pip fails to install a package is when the package includes source code for native components in *.pyd files. 必要なバージョンの Visual Studio がインストールされていない場合、pip はこれらのコンポーネントをコンパイルできません。Without the required version of Visual Studio installed, pip cannot compile these components. このような状況では、"error: Unable to find vcvarsall.bat" というエラー メッセージが表示されます。The error message displayed in this situation is error: Unable to find vcvarsall.bat. 多くの場合、easy_install ではコンパイル済みのバイナリをダウンロードでき、Python の古いバージョンに適したコンパイラは http://aka.ms/VCPython27 からダウンロードできます。easy_install is often able to download pre-compiled binaries, and you can download a suitable compiler for older versions of Python from http://aka.ms/VCPython27. 詳しくは、Python Tools チーム ブログの「How to deal with the pain of "unable to find vcvarsallbat"」("vcvarsallbat が見つからない" という問題への対処方法) をご覧ください。For more details, see How to deal with the pain of "unable to find vcvarsallbat" on the Python tools team blog.

仮想環境Virtual Environments

グローバル環境にインストールされたパッケージは、その環境を使うすべてのプロジェクトで使うことができるため、2 つのプロジェクトが、互換性のないパッケージまたは同じパッケージの異なるバージョンを必要とすると、競合が発生する可能性があります。Because packages installed into a global environment are available to all projects that use it, conflicts may occur when two projects require incompatible packages or different versions of the same package. このような競合を避けるため、Visual Studio には "仮想環境" を作成する機能があります。通常、仮想環境はプロジェクトに固有です。To avoid such conflicts, Visual Studio provides the ability to create virtual environments, which are typically specific to a project.

他の Python 環境と同様に、仮想環境も Python インタープリター、ライブラリ、およびパッケージのセットで構成されます。Like any other Python environment, a virtual environment consists of a Python interpreter, a library, and a set of packages. ただし、この場合、仮想環境はインタープリターとライブラリはいずれかのグローバル環境のものを使いますが (ただし、仮想環境をサポートしている場合)、そのパッケージはグローバル環境および他のすべての仮想環境から独立して分離されています。In this case, though, the virtual environment uses the interpreter and library from one of your global environments (provided it supports virtual environments), but its packages are separate and isolated from the global and all other virtual environments. この分離により、競合が回避され、仮想環境のフットプリントはほぼそのパッケージのサイズと、最小限に抑えられます。This isolation again avoids conflicts and minimizes the virtual environment's footprint to the approximate size of its packages.

仮想環境を作成するには:To create a virtual environment:

  1. ソリューション エクスプローラーで [Python Environments (Python 環境)] を右クリックし、[Add Virtual Environment... (仮想環境の追加...)] を選びます。次のダイアログが表示されます。Right-click Python Environments in Solution Explorer and select Add Virtual Environment..., which brings up the following:

    仮想環境の作成

  2. 名前を指定してプロジェクトのパスに仮想環境を作成するか、または完全なパスを指定して他の場所に作成します Specify a name to create the virtual environment in your project path, or a full path to create it elsewhere. (他のツールとの最大限の互換性を確保するには、名前ではアルファベットと数字のみを使います)。(To ensure maximum compatibility with other tools, use only letters and numbers in the name.)

  3. 基本インタープリターとしてグローバル環境を選び、[Create (作成)] をクリックします。Select a global environment as the base interpreter and click Create. pipvirtualenv または venv パッケージが使用できない場合は、ダウンロードされてインストールされます。If pip and virtualenv or venv packages are not available, they are downloaded and installed.

    指定したパスが既存の仮想環境の場合は、基本インタープリターが検出されて、[作成] ボタンは [追加] に変わります。If the provided path is an existing virtual environment, the base interpreter is detected and the create button changes to Add:

    既存の仮想環境の追加

ソリューション エクスプローラーで [Python Environments (Python 環境)] を右クリックし、[Add Existing Virtual Environment... (既存の仮想環境の追加...)] を選ぶことで、既存の仮想環境を追加することもできます。Visual Studio は、環境の lib ディレクトリにある orig-prefix.txt ファイルを使って、基本インタープリターを自動的に検出します。An existing virtual environment can also be added by right-clicking Python Environments in Solution Explorer and selecting Add Existing Virtual Environment.... Visual Studio automatically detects the base interpreter using the orig-prefix.txt file in the environment's lib directory.

プロジェクトに追加された仮想環境は [Python Environments (Python 環境)] ウィンドウに表示され、他の環境と同じように、アクティブ化してパッケージを管理できます。Once a virtual environment is added to your project, it appears in the Python Environments window, you can activate it like any other environment, and you can manage its packages. 仮想環境を右クリックして [削除] を選ぶと、環境への参照が削除されるか、または環境とディスク上のすべてのファイルが削除されます (ただし、基本インタープリターは削除されません)。Right-clicking it and selecting Remove either removes the reference to the environment, or deletes the environment and all its files on disk (but not the base interpreter).

仮想環境の 1 つの欠点として、ハード コーディングされたファイルのパスを含むため、共有や他の開発用コンピューターへの転送が簡単ではないことに注意してください。Note that one drawback to virtual environments is that they contain hard-coded file paths and thus cannot easily be shared or transported to other development machines. 幸い、次のセクションで説明する requirements.txt ファイルを使うことができます。Fortunately, you can use the requirements.txt file as described in the next section.

必要なパッケージの管理Managing required packages

他のユーザーとプロジェクトを共有する場合、ビルド システムを使う場合、または Microsoft Azure に発行する場合は、必要な外部パッケージを指定する必要があります。If you're sharing a project with others, using a build system, or plan to publish it to Microsoft Azure, you need to specify the external packages it requires. 推奨されるアプローチとしては、依存パッケージの必要なバージョンをインストールする pip のためのコマンド リストを含む requirements.txt ファイル (readthedocs.org) を使います。The recommended approach is to use a requirements.txt file (readthedocs.org) that contains a list of commands for pip that installs the required versions of dependent packages.

技術的には、任意のファイル名を使って要件を追跡できますが (パッケージをインストールするときに -r <full path to file> を使って)、Visual Studio では requirements.txt に固有のサポートが用意されています。Technically, any filename may be used to track requirements (by using -r <full path to file> when installing a package), but Visual Studio provides specific support for requirements.txt:

  • requirements.txt を含むプロジェクトを読み込み、そのファイルに列記されているすべてのパッケージをインストールする場合は、プロジェクトを右クリックして、[Install from requirements.txt (requirements.txt からインストールする)] を選びます。If you've loaded a project that contains requirements.txt and wish to install all the packages listed in that file, right-click the project and select Install from requirements.txt:

    requirements.txt からインストールする

  • 必要なすべてのパッケージをプロジェクトにインストールするときに、ソリューション エクスプローラーでプロジェクトを右クリックして [Generate requirements.txt (requirements.txt を生成する)] を選ぶことで、必要なファイルを作成できます。When you have all the necessary packages installed in a project, you can right-click the project in Solution Explorer and select Generate requirements.txt to create the necessary file. ファイルが既に存在する場合、更新方法の指定を求められます。If the file already exists, a prompt appears for how to update it:

    requirements.txt の更新オプション

    • [Replace entire file (ファイル全体を置き換える)] は、存在するすべてのアイテム、コメント、オプションを削除します。Replace entire file removes all items, comments, and options that exist.
    • [既存のエントリを更新] は、パッケージの要件を検出し、現在インストールされているバージョンと一致するようにバージョン指定子を更新します。Refresh existing entries detects package requirements and updates the version specifiers to match the version you currently have installed.
    • [Update and add entries (エントリを更新および追加する)] は、検出されたすべての要件を更新し、他のすべてのパッケージをファイルの末尾に追加します。Update and add entries refreshes any requirements that are found, and adds all other packages to the end of the file.

requirements.txt ファイルはプロジェクトの要件を固定するためのものなので、インストールされるすべてのパッケージが正確なバージョンと共に記述されています。Because requirements.txt files are intended to freeze the requirements of your project, all installed packages are written with precise versions. 正確なバージョンを使うと、別のコンピューターに環境を簡単に再現できます。Using precise versions ensures that you can easily reproduce your environment on another machine. バージョンの範囲、別のパッケージの依存関係、または pip 以外のインストーラーでインストールされたパッケージであってもも、含まれています。Packages are included even if they were installed with a version range, as a dependency of another package, or with an installer other than pip.

新しい仮想環境を追加するとき、requirements.txt ファイルが存在する場合は、[仮想環境の追加] ダイアログにパッケージを自動的にインストールするオプションが表示されるので、別のコンピューターに簡単に環境を再作成できます。If arequirements.txt file exists when adding a new virtual environment, the Add Virtual Environment dialog displays an option to install the packages automatically, making it easy to recreate an environment on another machine:

requirements.txt で仮想環境を作成する

pip でインストールできないパッケージが requirements.txt ファイルに出現する場合は、インストール全体が失敗します。If a package cannot be installed by pip and it appears in a requirements.txt file, the entire installation fails. その場合は、ファイルを手動で編集してこのパッケージを除外するか、pip のオプションを使ってパッケージのインストール可能なバージョンを参照するようにします。In this case, manually edit the file to exclude this package or to use pip's options to refer to an installable version of the package. たとえば、pip wheel を使って依存関係をコンパイルし、--find-links <path> オプションを requirements.txt に追加することができます。For example, you may prefer to use pip wheel to compile a dependency and add the --find-links <path> option to your requirements.txt:

C:\Project>pip wheel azure
Downloading/unpacking azure
    Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure

Building wheels for collected packages: azure
    Running setup.py bdist_wheel for azure
    Destination directory: c:\project\wheelhouse
Successfully built azure
Cleaning up...

C:\Project>type requirements.txt
--find-links wheelhouse
--no-index
azure==0.8.0

C:\Project>pip install -r requirements.txt -v
Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3))
    Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl
Installing collected packages: azure
Successfully installed azure
Cleaning up...
    Removing temporary dir C:\Project\env\build...

検索パスSearch paths

通常の Python の使用方法では、PYTHONPATH 環境変数 (または IRONPYTHONPATH など) がモジュール ファイルの既定の検索パスを提供します。With typical Python usage, the PYTHONPATH environment variable (or IRONPYTHONPATH, etc.) provides the default search path for module files. つまり、import <name> ステートメントを使うと、Python は最初に組み込みモジュールで一致する名前を検索し、次に実行中の Python コードが含まれるフォルダーを検索し、その後に該当する環境変数で定義されている "モジュールの検索パス" を検索しますThat is, when you use an import <name> statement, Python first searches its built-in modules for a matching name, then searches folder containing the Python code you're running, then searches the "module search path" as defined by the applicable environment variable. (Python のコア ドキュメントの「The Module Search Path」(モジュール検索パス) および「Environment variables」(環境変数) をご覧ください)。(See The Module Search Path and Environment variables in the core Python documentation.)

ただし、検索パス環境変数は、システム全体が設定されている場合でも、Visual Studio によって無視されます。The search path environment variable, however, is ignored by Visual Studio, even when it's been set for the entire system. 実際はまさにシステム全体が設定されている "ために" 無視されるので、自動的には答えられないようなある種の疑問が発生します。参照されているモジュールは Python 2.7 または Python 3.3 のどちらか。It's ignored, in fact, precisely because it's set for the entire system and thus raises certain questions that cannot be answered automatically: Are the referenced modules meant for Python 2.7 or Python 3.3? 標準ライブラリ モジュールをオーバーライドするのか。Are they going to override standard library modules? 開発者はこの動作を認識しているのか、それとも悪意のあるハイジャックの試みか。Is the developer aware of this behavior or is it a malicious hijacking attempt?

したがって、Visual Studio の Python サポートでは、環境とプロジェクトの両方で検索パスを直接指定するための手段が用意されています。Python support in Visual Studio thus provides a means to specify search paths directly in both environments and projects. 検索パスは、Visual Studio からスクリプトをデバッグまたは実行するときに、PYTHONPATH (またはそれと同等のもの) の値として渡されます。Search paths are passed as the value of PYTHONPATH (or equivalent) when you debug or execute your script from Visual Studio. 検索パスを追加すると、Visual Studio はそれらの場所でライブラリを検査し、IntelliSense データベースを構築します (ライブラリの数によっては時間がかかります)。By adding search paths, Visual Studio inspects the libraries in those locations and builds IntelliSense databases for them (constructing the database may take some time depending on the number of libraries).

検索パスを追加するには、ソリューション エクスプローラーで [Search Paths (検索パス)] 項目を右クリックし、[Add Folder to Search Path... (検索パスへのフォルダーの追加...)] を選んで、含めるフォルダーを選びます。To add a search path, right-click on the Search Paths item in Solution Explorer, select Add Folder to Search Path..., and select the folder to include. このパスは、プロジェクトに関連付けられているすべての環境に使われます。This path is used for any environment associated with the project.

[Add Zip Archive to Search Path... (検索パスへの Zip アーカイブの追加...)] を選ぶことで、拡張子が .zip または .egg のファイルを検索パスとして追加することもできます。フォルダーと同様に、これらのファイルの内容もスキャンされて、IntelliSense に利用されます。Files with a .zip or .egg extension can also be added as search paths by selecting Add Zip Archive to Search Path.... As with folders, the contents of these files are scanned and made available to IntelliSense.

注意

Python 3.3 を使っている場合でも Python 2.7 モジュールへの検索パスを追加することができ、その結果としてエラーが発生する可能性があります。It is possible to add a search path to Python 2.7 modules while you are using Python 3.3, and you may see errors as a result.

常に同じ検索パスを使い、内容があまり変化しない場合は、サイトパッケージ フォルダーにインストールする方が効率的な場合があります。If you are regularly using the same search paths and the contents do not often change, it may be more efficient to install it into your site-packages folder. そのサイトパッケージ フォルダーは分析されて IntelliSense データベースに格納され、常に意図された環境に関連付けられるので、プロジェクトごとに検索パスを追加する必要はありません。It's then be analyzed and stored in the IntelliSense database, is always be associated with the intended environment, and does not require a search path to be added for each project.