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:

동영상 소개는 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과 상호 interop을 포함합니다.Includes the latest language features, maximum Python package compatibility, full debugging support, and interop with IPython. 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". 대신 Python 3.5 또는 이전을 사용합니다.Use Python 3.5 or earlier instead.
IronPythonIronPython Python의 .NET 구현으로, 32비트 및 64비트 버전으로 사용 가능하며 C#/F#/Visual Basic interop, .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 JVM(Java Virtual Machine)에서 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 환경 검색(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 환경 창을 열려면 다음 중 하나를 수행합니다.To open the Python Environments window, do one of the following:

  1. 보기> Other Windows(다른 창) > Python 환경 메뉴 명령을 선택합니다.Select the View > Other Windows > Python Environments menu command.
  2. 솔루션 탐색기에서 Python 환경을 마우스 오른쪽 단추로 클릭하고 View All Python Environments(모든 Python 환경 보기)를 선택합니다.Right-click the Python Environments for a project in Solution Explorer and select View All Python Environments:

    솔루션 탐색기에서 모든 환경 명령 보기

두 경우 모두 Python 환경 창은 솔루션 탐색기의 형제 탭으로 나타납니다.In either case, the Python Environments window appears as a sibling tab to Solution Explorer:

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 또는 이전 버전에 Visual Studio용 Python 도구를 설치했으나 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 환경 창 확장된 보기

참고

Visual Studio에서는 system-site-packages 옵션을 적용하지만 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는 레지스트리를 확인하여 정상적으로 설치된 Python 인터프리터를 찾습니다(PEP 514 - Windows 레지스트리의 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 환경 창에서 + 사용자 지정...을 선택하면 새 환경이 생성되고 아래 설명된 구성이 열립니다.Select + Custom... in the Python Environments window, which creates a new environment and opens the Configure tab described below.)

    새 사용자 지정 환경의 기본 보기

  2. 설명 필드에 환경에 대한 이름을 입력합니다.Enter a name for the environment in the Description field.

  3. 접두사 경로 필드에 인터프리터의 경로를 입력하거나 찾습니다.Enter or browse to the path of the interpreter in the Prefix path field.
  4. 자동 검색을 선택하여 Visual Studio에서 나머지 필드를 완성하도록 하거나 수동으로 작성합니다.Select Auto Detect to have Visual Studio complete the remaining fields, or complete them manually.
  5. 적용을 선택하여 환경을 저장합니다.Select Apply to save the environment.
  6. 환경을 제거해야 하는 경우 구성 탭에서 제거 명령을 선택합니다. 자동 감지 환경에서는 이 옵션을 제공하지 않습니다.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 tab

환경에 대한 기본 정보와 명령을 제공합니다.Provides basic information and commands for the environment:

Python 환경 개요 탭

명령Command 설명Description
이 환경을 새 프로젝트에 대한 기본값으로 설정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.
배포자 웹 사이트 방문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 Visual Studio 내에서 이 환경에 대한 대화형(REPL) 창을 열고 시작 스크립트(아래 참조)를 적용합니다.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. 여기서 인라인 플롯과 확장된 IPython 구문을 사용할 수 있습니다. 예를 들어 도움말을 보려면 name?를 사용하고, 셸 명령을 실행하려면 !command를 사용합니다.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. 첫 번째 링크는 Windows 탐색기에서 열리고, 나머지 링크는 콘솔 창을 엽니다.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. 이러한 스크립트는 다음 두 가지 방법으로 참조됩니다.Such scripts are referenced in two ways:

  1. 환경을 설치할 때 Visual Studio는 Documents\Visual Studio 2017\Python Scripts\<environment> 폴더를 만듭니다. 여기서 <environment&gt'는 환경 이름과 일치합니다.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 도구 > 대화형 Windows 탭(대화형 windows 옵션 참조)에 있는 스크립트 컨트롤은 모든 환경에서 로드 및 실행되는 시작 스크립트에 대한 추가 폴더를 지정하기 위한 것입니다.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 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 환경 구성 탭

필드Field 설명Description
설명Description 환경에 지정할 이름입니다.The name to give the environment.
접두사 경로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 인터프리터 실행 파일의 경로이며, 일반적으로 접두사 경로 다음에 python.exe가 나옵니다.The path to the interpreter executable, commonly the prefix path followed by python.exe
창 인터프리터Windowed interpreter 비콘솔 실행 파일의 경로이며, 보통 접두사 경로 다음에 pythonw.exe가 나옵니다.The path to the non-console executable, often the prefix path followed by pythonw.exe.
라이브러리 경로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 드롭다운 메뉴에서 선택합니다.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 인터프리터에서 검색 경로를 찾는 데 사용하는 환경 변수입니다.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. 검색 상자에 --user 또는 --no-deps 등의 플래그를 포함하여 pip install 명령을 직접 입력할 수도 있습니다.You can also directly enter any pip install command in the search box, including flags such as --user or --no-deps.

Python 환경 pip 탭

패키지를 설치하면 파일 시스템에서 환경의 Lib 폴더 안에 하위 폴더가 생성됩니다.Installing a package creates subfolders within the environment's Lib folder on the file system. 예를 들어 c:\Python36에 Python 3.6이 설치되어 있는 경우 패키지는 c:\Python36\Lib에 설치됩니다. c:\Program Files\Anaconda3에 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":

패키지 설치를 위한 권한 상승 프롬프트

지금 권한 상승은 단일 작업에 대한 관리 권한을 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. 옵션 - 일반 탭을 참조하세요.See Options - General tab.

IntelliSense 탭IntelliSense tab

IntelliSense 완성 데이터베이스의 현재 상태를 보여 줍니다.Shows the current status of the IntelliSense completion database:

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를 얻게 되며 더 많은 라이브러리를 설치할 때까지 데이터베이스를 다시 새로 고치지 않아도 됩니다(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 환경 창에서 이를 볼 수 있습니다.Visual Studio usually detects global environments automatically, and they can be viewed in the Python Environments window. 그렇지 않은 경우 동일한 창을 통해 수동으로 환경을 추가할 수 있습니다.If not, you can add an environment manually through that same window.

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 환경 노드 아래 나열됩니다.Project environments are listed in Solution Explorer under the Python Environments node. 굵게 표시된 항목은 현재 활성 상태이며, Visual Studio에서 디버깅, 가져오기 및 멤버 완성, 구문 검사 및 환경이 필요한 기타 모든 작업에 사용됩니다.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 환경을 마우스 오른쪽 단추로 클릭하고 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.

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 패키지

새 패키지를 설치하려면 환경을 마우스 오른쪽 단추로 클릭하고 Python 패키지 설치...를 선택하고 원하는 패키지 이름을 입력합니다.To install new packages, right-click the environment, select Install Python Package..., and enter the name of the desired package. 패키지(및 종속성)은 Python 패키지 인덱스(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. 패키지를 제거하려면 마우스 오른쪽 단추로 클릭하고 제거를 선택합니다.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은 미리 컴파일된 이진 파일을 다운로드할 수 있으며, http://aka.ms/VCPython27에서 이전 버전의 Python에 적합한 컴파일러를 다운로드할 수 있습니다.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 도구 팀 블로그에서 "vcvarsallbat을 찾을 수 없는" 어려움을 해결하는 방법(영문)을 참조하세요.For more details, see How to deal with the pain of "unable to find vcvarsallbat" on the Python tools team blog.

가상 환경Virtual Environments

글로벌 환경에 설치된 패키지는 해당 패키지를 사용하는 모든 프로젝트에서 사용 가능하므로 두 프로젝트에 호환되지 않은 패키지 또는 동일한 패키지의 서로 다른 버전이 필요한 경우 충돌이 발생할 수 있습니다.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 환경을 마우스 오른쪽 단추로 클릭하고 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. 기본 인터프리터로 글로벌 환경을 선택하고 만들기를 클릭합니다.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 환경을 마우스 오른쪽 단추로 클릭하거나 기존 가상 환경 추가...를 선택하여 기존 가상 환경을 추가할 수도 있습니다. 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 환경 창에 나타나며 다른 환경처럼 프로젝트를 활성화하고 해당 패키지를 관리할 수 있습니다.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).

가상 환경에 대한 한 가지 단점은 하드 코드된 파일 경로를 포함하므로 다른 개발 컴퓨터와 쉽게 공유하거나 전송할 수 없다는 점입니다.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가 포함된 프로젝트를 로드하여 이 파일에 나열된 모든 패키지를 설치하려면 솔루션 탐색기에서 Python 환경 노드를 확장한 다음 환경 노드를 마우스 오른쪽 단추로 클릭하고 requirements.txt에서 설치를 선택합니다.If you've loaded a project that contains requirements.txt and wish to install all the packages listed in that file, expand the Python Environments node in Solution Explorer, then right-click an environment node and select Install from requirements.txt:

    requirements.txt에서 설치

  • 프로젝트에 필요한 모든 패키지가 설치되었으면 솔루션 탐색기에서 환경을 마우스 오른쪽 단추로 클릭하고 requirements.txt 생성을 선택하여 필요한 파일을 만듭니다.If you already have all the necessary packages installed in a project, you can right-click an environment 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 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 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 a requirements.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 설명서의 모듈 검색 경로환경 변수 참조)(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).

검색 경로를 추가하려면 솔루션 탐색기에서 검색 경로 항목을 마우스 오른쪽 단추로 클릭하고 검색 경로에 폴더 추가...를 선택하고 포함할 폴더를 선택합니다.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.

.zip 또는 .egg 확장명이 있는 파일도 검색 경로에 Zip 보관 파일 추가...를 선택하여 검색 경로로 추가할 수 있습니다. 폴더와 마찬가지로 이러한 폴더의 내용을 검색하고 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.

정기적으로 동일한 검색 경로를 사용하고 그 내용이 자주 변경되지 않는 경우 site-packages 폴더에 설치하는 것이 더 효율적일 수 있습니다.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.