Visual Studio에서 Python 작업Working with Python in Visual Studio

Python은 안정적이고 유연하며 배우기 쉬울뿐만 아니라 모든 운영 체제에서 무료로 사용할 수 있으며, 유용한 개발자 커뮤니티와 다양한 무료 라이브러리에서 지원되며 널리 사용되는 프로그래밍 언어입니다.Python is a popular programming language that is reliable, flexible, easy to learn, free to use on all operating systems, and supported by both a strong developer community and many free libraries. Python은 웹 응용 프로그램, 웹 서비스, 데스크톱 앱, 스크립팅 및 과학적 컴퓨팅 등 모든 방식의 개발을 지원하며 대학, 과학자, 아마추어 개발자 및 전문 개발자 등 많은 분야에 사용됩니다.Python supports all manners of development, including web applications, web services, desktop apps, scripting, and scientific computing and is used by many universities, scientists, casual developers, and professional developers alike. python.orgPython for Beginners(초보자를 위한 Python)에서 이 언어에 대해 자세히 알아볼 수 있습니다.You can learn more about the language on python.org and Python for Beginners.

Windows의 Visual Studio는 Python 개발 및 데이터 과학 워크로드(Visual Studio 2017)와 무료 Visual Studio용 Python 도구 확장(Visual Studio 2015 및 이전 버전)을 통해 Python 언어에 대한 오픈 소스 지원을 제공합니다.Visual Studio on Windows provides open-source support for the Python language through the Python development and Data Science workloads (Visual Studio 2017) and the free Python Tools for Visual Studio extension (Visual Studio 2015 and earlier). Python은 현재 Mac용 Visual Studio에서 지원되지 않지만 Visual Studio Code를 통해 Mac 및 Linux에서 사용할 수 있습니다(아래 질문 및 답변 참조).Python is not presently supported in Visual Studio for Mac, but is available on Mac and Linux through Visual Studio Code (see Q&A below.

시작하려면 다음을 수행합니다.To get started:

기능Feature 설명Description 일반 Visual Studio 설명서General Visual Studio Documentation
Visual Studio 프로젝트 시스템Visual Studio project system Python 코드의 폴더 구조를 암시적으로 선택할 뿐만 아니라 앱 코드, 테스트 코드, 웹 페이지, JavaScript, 빌드 스크립트 등을 식별할 수 있도록 명시적으로 제어할 수 있습니다.Implicitly picks up a folder structure of Python code while allowing explicit control to identify app code, test code, web pages, JavaScript, build scripts, etc. Visual Studio의 솔루션 및 프로젝트Solutions and Projects in Visual Studio
프로젝트 템플릿Project templates 콘솔, 웹, Azure, 데이터 과학 및 기타 형식의 프로젝트에 대한 프로젝트 구조를 신속하게 만듭니다.Quickly creates project structure for console, web, Azure, data science, and other types of projects Visual Studio 템플릿Visual Studio Templates
다양한 인터프리터 지원Multiple interpreter support CPython 및 IronPython의 다양한 버전을 지원합니다.Supports various versions of CPython and IronPython. 해당 없음n/a
IPython 지원IPython support 인라인 플롯, .NET 및 WPF(Windows Presentation Foundation)에 대한 REPL의 IPython/Jupyter에 대한 지원을 포함합니다.Includes support for IPython/Jupyter in the REPL for inline plots, .NET, and Windows Presentation Foundation (WPF). 해당 없음n/a
다양한 편집 기능, IntelliSense 및 코드 이해Rich editing, IntelliSense, and code comprehension 구문 색 지정, 모든 코드 및 라이브러리에 대한 자동 완성, 코드 서식 지정, 시그니처 도움말, 클래스 뷰, 정의로 이동, 모든 참조 찾기, 코드 조각, 리팩터링, PyLint 등을 포함합니다.Includes syntax coloring, auto-complete across all your code and libraries, code formatting, signature help, class view, Go to Definition, Find All References, code snippets, refactoring, PyLint, and more. 코드 및 텍스트 편집기에서 코드 작성Writing Code in the Code and Text Editor
대화형 창Interactive Window 코드 부분을 간편하게 강조 표시하고 이를 대화형 창으로 보내는 기능을 포함하는 Python에 대한 신속한 REPL 환경을 제공합니다.Provides a quick REPL experience for Python with the ability to easily highlight a portion of your code and send it to the Interactive Window. 해당 없음n/a
완전한 기능의 디버깅Full-featured debugging Visual Studio 프로젝트 유무와 관계없이 풍부한 디버깅이 가능하며, 기존 실행 파일 디버그 기능, Python/C++ 혼합 모드 디버깅, Windows/Linux/Mac으로 원격 디버깅, Azure로 원격 디버깅, 대화형 창 내에서 디버깅 등을 수행할 수 있습니다.Debugging can be done with or without a Visual Studio project, including the ability to debug an existing executable, Python/C++ mixed-mode debugging, remote debugging to Windows/Linux/Mac, remote debugging to Azure, and debugging within the Interactive Window. Visual Studio의 디버깅Debugging in Visual Studio
포괄적인 보고를 제공하는 프로파일링 도구Profiling tools with comprehensive reporting 서로 다른 프로파일링 실행 간에 성능을 비교하는 기능을 포함하여 응용 프로그램 내에서 시간이 어떻게 소요되는지 살펴봅니다.Explores how time is being spent within your application, including the ability to compare performance between different profiling runs. 프로파일링 도구(Python에 대해 일부 Visual Studio 프로파일링 기능만 사용할 수 있음)Profiling Tools (not all Visual Studio profiling features are available for Python)
단위 테스트 도구Unit testing tools Visual Studio 테스트 탐색기에서 테스트를 검색, 실행 및 관리하고 단위 테스트를 쉽게 디버깅합니다.Discover, run, and manage tests in Visual Studio Test Explorer, and easily debug unit tests. 코드 단위 테스트Unit Test Your Code

또한 Python 워크로드는 Windows, Mac OS X, Linux 앱에서 Azure 서비스를 간편하게 사용할 수 있도록 해주는 Python용 Azure SDK도 포함합니다.The Python workload also includes the Azure SDK for Python, which simplifies consuming Azure services from Windows, Mac OS X, and Linux apps.

동영상 소개는 Microsoft Virtual Academy에 있는 짤막한 Visual Studio용 Python 도구 과정을 참조하세요(총 22분 정도).For a video introduction, see the short Python Tools for Visual Studio course on Microsoft Virtual Academy (about 22 minutes total).

질문과 대답Questions and answers

질문: Mac용 Visual Studio에서 Python 지원을 사용할 수 있나요?Q. Is Python support available with Visual Studio for Mac?

대답:A. UserVoice에서 요청되었지만 지금은 사용할 수 없습니다.Not at this time, though it is requested on UserVoice. Mac용 Visual Studio 설명서에서는 지원되는 현재 개발 유형을 식별합니다.The Visual Studio for Mac documentation identifies the current types of development that it does support. 한편, Windows, Mac 및 Linux의 Visual Studio Code는 사용 가능한 확장을 통해 Python에서 잘 작동합니다.In the meantime, Visual Studio Code on Windows, Mac, and Linux works well with Python through available extensions.

질문: UI를 빌드하는 데 Python과 함께 무엇을 사용할 수 있나요?Q. What can I use to build UI with Python?

대답:A. 이 영역의 기본 제품은 Qt Project, PySide(공식 바인딩)(PySide 다운로드도 참조)로 알려진 Python용 바인딩 및 PyQt입니다.The main offering in this area is the Qt Project, with bindings for Python known as PySide (the official binding) (also see PySide downloads) and PyQt. 현재는 Visual Studio의 Python 지원에 UI 개발용 특정 도구가 포함되지 않습니다.At present, Python support in Visual Studio does not include any specific tools for UI development.

질문: Python 프로젝트에서 독립 실행형 실행 파일을 생성할 수 있나요?Q. Can a Python project produce a stand-alone executable?

대답:A. Python은 일반적으로 Visual Studio, 웹 서버와 같은 적합한 Python 지원 환경에서 요청 시 코드를 실행하는 데 사용되는 해석된 언어입니다.Python is generally an interpreted language, with which code is run on demand in a suitable Python-capable environment such as Visual Studio and web servers. 현재는 Visual Studio 자체에서 독립 실행형 실행 파일을 만드는 방법을 제공하지 않습니다. 즉, 기본적으로 포함된 Python 인터프리터가 있는 프로그램입니다.Visual Studio itself does not at present provide the means to create a stand-alone executable, which essentially means a program with an embedded Python interpreter. 그러나 StackOverflow에 설명된 것처럼 Python 커뮤니티에는 실행 파일을 만드는 다양한 방법이 있습니다.However, there are various means within the Python community to create executables as described on StackOverflow. 또한 CPython은 블로그 게시물 Using CPython's Embeddable Zip File(CPython의 포함 가능한 Zip 파일 사용)에 설명된 것처럼 네이티브 응용 프로그램 내에 포함되는 기능을 지원합니다.CPython also supports being embedded within a native application, as described on the blog post, Using CPython's Embeddable Zip File.

기능 매트릭스Features Matrix

설치 가이드에 설명된 대로 Visual Studio의 다음 버전(edition)에 Python 지원을 설치할 수 있습니다.Python support can be installed in the following editions of Visual Studio as described in the installation guide:

  • Visual Studio 2017(모든 버전)Visual Studio 2017 (all editions)
  • Visual Studio 2015(모든 버전)Visual Studio 2015 (all editions)
  • Visual Studio 2013 Community EditionVisual Studio 2013 Community Edition
  • Visual Studio 2013 Express for Web 업데이트 2 이상Visual Studio 2013 Express for Web, Update 2 or higher
  • Visual Studio 2013 Express for Desktop 업데이트 2 이상Visual Studio 2013 Express for Desktop, Update 2 or higher
  • Visual Studio 2013(Pro 버전 이상)Visual Studio 2013 (Pro edition or higher)
  • Visual Studio 2012(Pro 버전 이상)Visual Studio 2012 (Pro edition or higher)
  • Visual Studio 2010 SP1(Pro 버전 이상, .NET 4.5 필요)Visual Studio 2010 SP1 (Pro edition or higher; .NET 4.5 required)

Visual Studio 버전(version 및 edition)에서 지원되는 기능:Supported features by Visual Studio version and edition:

Python 지원Python Support 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
여러 인터프리터 관리Multiple interpreters management
자동 검색에 자주 사용되는 인터프리터Auto-detect popular interpreters
사용자 지정 인터프리터 추가Add custom interpreters
가상 환경Virtual Environments
Pip/간편 설치Pip/Easy Install


프로젝트 시스템Project System 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
기존 코드에서 새 프로젝트New project from existing code
모든 파일 표시Show all files
소스 제어Source control
Git 통합Git integration 11


편집Editing 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
구문 강조Syntax highlighting
자동 완성Auto-complete
서명 도움말Signature help
요약 정보Quick info
개체 브라우저/클래스 뷰Object browser/class view
탐색 모음Navigation bar
정의로 이동Go to Definition
다음 탐색Navigate to
모든 참조 찾기Find All References
자동 들여쓰기Auto indentation
코드 서식Code formatting
리팩터링 - 이름 바꾸기Refactor - rename
리팩터링 - 추출 방법Refactor - extract method
리팩터링 - 가져오기 추가/제거Refactor - add/remove import
PyLintPyLint


대화형 창Interactive Window 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
대화형 창Interactive Window
인라인 그래프가 있는 IPythonIPython with inline graphs


바탕 화면Desktop 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
콘솔/Windows 응용 프로그램Console/Windows application
IronPython WPF(XAML 디자이너 포함)IronPython WPF (with XAML designer)
IronPython Windows FormsIronPython Windows Forms


Web 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
Django 웹 프로젝트Django web project
Bottle 웹 프로젝트Bottle web project
Flask 웹 프로젝트Flask web project
일반 웹 프로젝트Generic web project


AzureAzure 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
웹 사이트에 배포Deploy to web site 22
웹 역할에 배포Deploy to web role 44 44 33
작업자 역할에 배포Deploy to worker role ?? ?? ?? 44 44 33
Azure 에뮬레이터에서 실행Run in Azure emulator ?? ?? ?? 44 44 33
원격 디버깅Remote debugging 66 88 88
서버 탐색기 연결Server Explorer attach 77 77


Django 템플릿Django templates 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
디버깅Debugging
자동 완성Auto-complete 55 55
CSS 및 JavaScript 자동 완성Auto-complete for CSS and JavaScript 55 55


디버깅Debugging 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
디버깅Debugging
프로젝트 없이 디버깅Debugging without a project
디버깅 - 편집에 연결Debugging - attach to editing
혼합 모드 디버깅Mixed-mode debugging
원격 디버깅(Windows, Mac OS X, Linux)Remote debugging (Windows, Mac OS X, Linux)
디버그 대화형 창Debug interactive window


프로파일링Profiling 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
프로파일링Profiling


테스트Test 20172017 20152015 2013 Comm2013 Comm 2013 Desktop2013 Desktop 2013 Web2013 Web 2013 Pro+2013 Pro+ 2012 Pro+2012 Pro+ 2010 SP1 Pro+2010 SP1 Pro+
테스트 탐색기Test explorer
테스트 실행Run test
테스트 디버깅Debug test


  1. VS 2012에 대한 Git 지원은 Git용 Visual Studio 도구 확장에서 사용 가능하며 Visual Studio 갤러리에서 제공됩니다.Git support for VS 2012 is available in the Visual Studio Tools for Git extension, available on the Visual Studio Gallery.

  2. Azure 웹 사이트에 배포하려면 .NET 2.1용 Azure SDK - VS 2010 SP1이 필요합니다.Deployment to Azure Web Site requires Azure SDK for .NET 2.1 - VS 2010 SP1. 이상 버전에서는 VS 2010을 지원하지 않습니다.Later versions don't support VS 2010.

  3. Azure 웹 역할 및 작업자 역할에 대한 지원을 사용하려면 .NET 2.3용 Azure SDK - VS 2012 이상이 필요합니다.Support for Azure Web Role and Worker Role requires Azure SDK for .NET 2.3 - VS 2012 or later.

  4. Azure 웹 역할 및 작업자 역할에 대한 지원을 사용하려면 .NET 2.3용 Azure SDK - VS 2013 이상이 필요합니다.Support for Azure Web Role and Worker Role requires Azure SDK for .NET 2.3 - VS 2013 or later.

  5. Visual Studio 2013에서 Django 템플릿 편집기에는 몇 가지 알려진 문제가 있으며 Update 2를 설치하여 해결할 수 있습니다.Django template editor in Visual Studio 2013 has some known issues that are resolved by installing Update 2.

  6. Windows 8 이상이 필요합니다.Requires Windows 8 or later. Visual Studio 2013 Express for Web에는 [프로세스에 연결] 대화 상자가 없지만 Azure 웹 사이트 원격 디버깅은 서버 탐색기에서 Attach Debugger(Python) 명령을 사용하여 계속 수행할 수 있습니다.Visual Studio 2013 Express for Web doesn't have the Attach to Process dialog, but Azure Web Site remote debugging is still possible using the Attach Debugger (Python) command in Server Explorer. 원격 디버깅을 사용하려면 .NET 2.3용 Azure SDK - VS 2013 이상이 필요합니다.Remote debugging requires Azure SDK for .NET 2.3 - VS 2013 or later.

  7. Windows 8 이상이 필요합니다.Requires Windows 8 or later. 서버 탐색기에서 Attach Debugger(Python) 명령을 사용하려면 .NET 2.3용 Azure SDK - VS 2013 이상이 필요합니다.Attach Debugger (Python) command in Server Explorer requires Azure SDK for .NET 2.3 - VS 2013 or later.

  8. Windows 8 이상이 필요합니다.Requires Windows 8 or later.

추가 리소스Additional resources