Python 애플리케이션은 일반적으로 폴더 및 파일만 사용하여 정의됩니다. 애플리케이션이 증가함에 따라 이 구조는 복잡해질 수 있으며 자동 생성된 파일, 웹 애플리케이션용 JavaScript 등을 포함할 수 있습니다.
Visual Studio 프로젝트는 복잡성을 관리하는 데 도움이 될 수 있습니다. 프로젝트( .pyproj 파일)는 프로젝트와 연결된 모든 원본 및 콘텐츠 파일을 식별합니다. 각 파일에 대한 빌드 정보를 포함하고, 소스 제어 시스템과 통합할 정보를 유지 관리하며, 애플리케이션을 논리적 구성 요소로 구성하는 데 도움이 됩니다.
프로젝트는 항상 Visual Studio 솔루션 내에서 관리됩니다. 솔루션에는 확장 모듈을 구현하는 C++ 프로젝트를 참조하는 Python 프로젝트와 같이 서로를 참조할 수 있는 여러 프로젝트가 포함될 수 있습니다. 이 관계를 통해 Visual Studio는 Python 프로젝트 디버깅을 시작할 때 C++ 프로젝트(필요한 경우)를 자동으로 빌드합니다. 자세한 내용은 Visual Studio의 솔루션 및 프로젝트를 참조하세요.
Visual Studio는 다양한 유형의 애플리케이션 구조를 빠르게 만들 수 있는 다양한 Python 프로젝트 템플릿을 제공합니다. 템플릿을 선택하여 기존 폴더 트리에서 프로젝트를 만들거나 깨끗하고 빈 프로젝트를 만들 수 있습니다. 사용 가능한 템플릿 목록은 프로젝트 템플릿 섹션의 표를 참조하세요.
Python 프로젝트 작업을 위한 팁
Visual Studio에서 Python 코드를 실행하기 위해 프로젝트를 사용할 필요는 없지만 이렇게 하면 이점이 있습니다. 시작할 때 프로젝트 및 Python 작업에 대한 다음 고려 사항을 검토합니다.
Visual Studio 2019 이상에서는 Python 코드가 있는 폴더를 열고 Visual Studio 프로젝트 및 솔루션 파일을 만들지 않고 코드를 실행할 수 있습니다.
이 방법에 대한 단계별 단계는 빠른 시작: 폴더 문서에서 Python 코드 열기 및 실행에서 사용할 수 있습니다.
Visual Studio에서 Python 코드를 실행하는 데 프로젝트가 필요하지 않습니다. Visual Studio의 모든 버전은 Python 코드에서 잘 작동합니다.
Python 파일 자체를 열고 자동 완성, IntelliSense 및 디버깅 기능에 즉시 액세스할 수 있습니다. 그러나 프로젝트 없이 코드를 사용하는 데 몇 가지 잠재적인 단점이 있습니다.
- 코드는 항상 기본 전역 환경을 사용하므로 코드가 다른 환경에 사용되는 경우 잘못된 완료 또는 오류가 표시될 수 있습니다.
- Visual Studio는 단일 파일이 열려 있는 폴더의 모든 파일 및 패키지를 분석합니다. 이 프로세스는 상당한 CPU 시간을 사용할 수 있습니다.
기존 코드에서 Visual Studio 프로젝트를 만들 수 있습니다. 이 방법은 기존 파일에서 프로젝트 만들기 섹션에서 설명합니다.
기본 프로젝트 작업: 파일, 환경 및 시작
Python 코드와 함께 프로젝트를 사용하는 경우 파일 추가, 시작 파일 할당, Python 인터프리터 환경 설정 등의 기본 작업을 완료합니다.
애플리케이션을 개발할 때 일반적으로 프로젝트에 다양한 형식의 새 파일을 추가해야 합니다. 파일을 더 쉽게 추가할 수 있습니다. 프로젝트를 마우스 오른쪽 단추로 클릭하고기존 항목>를 선택한 다음 추가할 파일 형식을 찾습니다. 새 항목> 옵션은 새 파일을 만드는 데 사용할 수 있는 항목 템플릿을 보여 주는 대화 상자를 엽니다. 옵션에는 빈 Python 파일, Python 클래스, 단위 테스트 및 웹 애플리케이션과 관련된 다양한 파일이 포함됩니다. 테스트 프로젝트를 사용하여 템플릿 옵션을 탐색하여 Visual Studio 버전에서 사용할 수 있는 기능을 알아볼 수 있습니다. 자세한 내용은 항목 템플릿 참조를 참조하세요 .
각 Python 프로젝트에는 솔루션 탐색기에서 굵게 표시된 하나의 할당된 시작 파일이 있습니다. 시작 파일은 디버깅을 시작할 때(F5 또는 디버그>디버깅 시작 선택) 또는 대화형 창에서 프로젝트를 실행할 때 실행됩니다. Shift + Alt + F5 바로 가기 키를 사용하거나Python 대화형에서 프로젝트 실행>를 선택하여 이 창을 열 수 있습니다. 시작 파일을 변경하려면 사용할 파일을 마우스 오른쪽 단추 로 클릭하고 시작 항목으로 설정 (또는 이전 버전의 Visual Studio에서 시작 파일로 설정 )을 선택합니다.
프로젝트에서 선택한 시작 파일을 제거하고 대체 파일을 선택하지 않으면 Visual Studio에서 프로젝트를 시작하는 데 사용할 Python 파일을 알 수 없습니다. 이 경우 Visual Studio 2017 버전 15.6 이상에서 오류가 표시됩니다. 이전 버전은 Python 인터프리터가 실행 중인 출력 창을 열거나 출력 창이 열리고 즉시 닫힙니다. 이러한 동작이 발생하는 경우 할당된 시작 파일이 있는지 확인합니다.
팁 (조언)
출력 창을 열어 두려면 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 대화 상자에서 디버그 탭을 선택한 다음 인터-i 필드에 플래그를 추가 합니다. 이 인수를 사용하면 프로그램이 완료된 후 인터프리터가 대화형 모드로 전환됩니다. 창은 닫을 때까지 열려 있습니다(예: 바로 가기 키 Ctrl+E+Enter 사용).
새 프로젝트는 항상 기본 전역 Python 환경과 연결됩니다. 프로젝트를 다른 환경(가상 환경 포함)과 연결하려면 프로젝트에서 Python 환경 노드를 마우스 오른쪽 단추로 클릭합니다. 환경 추가를 선택한 다음 원하는 환경을 선택합니다. 도구 모음에서 환경 드롭다운 컨트롤을 사용하여 환경을 선택하거나 프로젝트에 다른 환경을 추가할 수도 있습니다.
활성 환경을 변경하려면 솔루션 탐색기 에서 원하는 환경을 마우스 오른쪽 단추로 클릭하고 다음 이미지와 같이 환경 활성화 를 선택합니다. 자세한 내용은 프로젝트의 환경 선택을 참조하세요.
프로젝트 템플릿
Visual Studio는 처음부터 또는 기존 코드에서 Python 프로젝트를 설정하는 여러 가지 방법을 제공합니다. 템플릿을 사용하려면새>프로젝트 파일을> 선택하거나 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고새 프로젝트추가>를 선택합니다. 새 프로젝트 대화 상자에서 Python에서 검색하거나 Language> 노드를 선택하여Python 관련 템플릿을 볼 수 있습니다.
다음 템플릿은 Visual Studio 버전 2022에서 사용할 수 있습니다.
| Template | Description |
|---|---|
| 기존 Python 코드에서 | 폴더 구조의 기존 Python 코드에서 Visual Studio 프로젝트를 만듭니다. |
| Python 애플리케이션 | 비어 있는 단일 소스 파일을 사용하여 새 Python 애플리케이션에 대한 기본 프로젝트 구조를 제공합니다. 기본적으로 프로젝트는 기본 전역 환경의 콘솔 인터프리터에서 실행됩니다. 다른 환경 할당을 변경할 수 있습니다. |
| 웹 프로젝트 | Bottle, Django 및 Flask를 비롯한 다양한 프레임워크를 기반으로 하는 웹앱 프로젝트입니다. |
| IoT(백그라운드 애플리케이션) | 디바이스에서 백그라운드 서비스로 실행되도록 Python 프로젝트 배포를 지원합니다. 자세한 내용은 Windows IoT 개발자 센터를 참조하세요. |
| Python 확장 모듈 | 이 템플릿은 Visual Studio 2017 이상에서 Python 워크로드를 사용하여 Python 네이티브 개발 도구를 설치하는 경우 Visual C++ 아래에 표시됩니다( 설치 참조). 템플릿은 Python용 C++ 확장 만들기에 설명된 구조와 유사한 C++ 확장 DLL의 핵심 구조를 제공합니다. |
다음 템플릿은 Visual Studio 버전 2019에서 사용할 수 있습니다. 버전 2019에서 사용할 수 있는 모든 템플릿이 이전 버전의 Visual Studio에서 사용할 수 있는 것은 아닙니다.
| Template | Description |
|---|---|
| 기존 Python 코드에서 | 폴더 구조의 기존 Python 코드에서 Visual Studio 프로젝트를 만듭니다. |
| Python 애플리케이션 | 비어 있는 단일 소스 파일을 사용하여 새 Python 애플리케이션에 대한 기본 프로젝트 구조를 제공합니다. 기본적으로 프로젝트는 기본 전역 환경의 콘솔 인터프리터에서 실행됩니다. 다른 환경 할당을 변경할 수 있습니다. |
| 웹 프로젝트 | Bottle, Django 및 Flask를 비롯한 다양한 프레임워크를 기반으로 하는 웹앱 프로젝트입니다. |
| IoT(백그라운드 애플리케이션) | 디바이스에서 백그라운드 서비스로 실행되도록 Python 프로젝트 배포를 지원합니다. 자세한 내용은 Windows IoT 개발자 센터를 참조하세요. |
| Python 확장 모듈 | 이 템플릿은 Visual Studio 2017 이상에서 Python 워크로드를 사용하여 Python 네이티브 개발 도구를 설치하는 경우 Visual C++ 아래에 표시됩니다( 설치 참조). 템플릿은 Python용 C++ 확장 만들기에 설명된 구조와 유사한 C++ 확장 DLL의 핵심 구조를 제공합니다. |
| IronPython 애플리케이션 | 기본적으로 IronPython을 사용하고 .NET 언어로 .NET interop 및 혼합 모드 디버깅을 사용하도록 설정합니다. 이 템플릿은 Python 애플리케이션 템플릿과 유사합니다. |
| IronPython WPF 애플리케이션 | 애플리케이션 사용자 인터페이스에 대한 Windows Presentation Foundation XAML 파일과 IronPython을 사용하여 프로젝트 구조를 제공합니다. Visual Studio는 XAML UI 디자이너를 제공하고, 코드 숨김을 Python으로 작성할 수 있으며, 애플리케이션은 콘솔을 표시하지 않고 실행됩니다. |
| IronPython Silverlight 웹 페이지 | Silverlight를 사용하여 브라우저에서 실행되는 IronPython 프로젝트를 만듭니다. 애플리케이션의 Python 코드는 웹 페이지에 스크립트로 포함됩니다. 상용구 스크립트 태그는 JavaScript 코드를 끌어와 Silverlight 내에서 실행되는 IronPython을 초기화합니다. 이 태그는 Python 코드가 DOM과 상호 작용할 수 있습니다. |
| IronPython Windows Forms 애플리케이션 | Windows Forms에서 코드를 사용하여 만든 IronPython 및 UI를 사용하여 프로젝트 구조를 빌드합니다. 애플리케이션은 콘솔을 표시하지 않고 실행됩니다. |
비고
Python은 해석된 언어이므로 Visual Studio의 Python 프로젝트는 C#과 같은 다른 컴파일된 언어 프로젝트와 같이 독립 실행형 실행 파일을 생성하지 않습니다. 자세한 내용은 질문과 답변을 참조하세요.
기존 파일에서 프로젝트 만들기
다음 단계에 따라 기존 파일에서 프로젝트를 만듭니다.
중요합니다
다음 프로세스에서는 원본 파일을 이동하거나 복사하지 않습니다. 파일 복사본으로 작업하려면 먼저 폴더를 복제한 다음 프로젝트를 만듭니다.
Visual Studio를 시작하고새>파일>프로젝트를 선택합니다.
새 프로젝트 만들기 대화 상자에서 python을 검색하고 기존 Python 코드 템플릿에서 선택한 다음을 선택합니다.
새 프로젝트 구성 대화 상자에서 프로젝트 이름 및 위치를 입력하고 프로젝트를 포함할 솔루션을 선택한 다음 만들기를 선택합니다.
기존 Python 코드에서 새 프로젝트 만들기 마법사에서폴더 경로를 기존 코드로 설정하고, 파일 형식에 대한 필터를 설정하고, 프로젝트에 필요한 검색 경로를 지정한 다음, 다음을 선택합니다. 검색 경로를 모르는 경우 필드를 비워 둡니다.
다음 페이지에서 프로젝트에 대한 시작 파일을 선택합니다. Visual Studio는 기본 전역 Python 인터프리터 및 버전을 선택합니다. 드롭다운 메뉴를 사용하여 환경을 변경할 수 있습니다. 준비가 되면 다음을 선택합니다.
비고
대화 상자에는 루트 폴더의 파일만 표시됩니다. 원하는 파일이 하위 폴더에 있는 경우 시작 파일을 비워 둡니다. 이후 단계에서 설명한 대로 솔루션 탐색기에서 시작 파일을 설정할 수 있습니다.
프로젝트 파일(디스크에 .pyproj 파일)을 저장할 위치를 선택합니다. 해당하는 경우 가상 환경의 자동 검색을 포함하고 다른 웹 프레임워크에 대한 프로젝트를 사용자 지정할 수도 있습니다. 이러한 옵션을 잘 모르는 경우 필드를 기본값으로 설정합니다.
완료를 선택합니다.
Visual Studio에서 프로젝트를 만들고 솔루션 탐색기에서 엽니다. .pyproj 파일을 다른 위치로 이동하려면 솔루션 탐색기에서 파일을 선택한 다음 도구 모음에서 다른 이름으로 파일>저장을 선택합니다. 이 작업은 프로젝트의 파일 참조를 업데이트하지만 코드 파일은 이동하지 않습니다.
다른 시작 파일을 설정하려면 솔루션 탐색기에서 파일을 찾고 파일을 마우스 오른쪽 단추로 클릭한 다음 시작 파일로 설정을 선택합니다.
연결된 파일
연결된 파일은 프로젝트로 가져오지만 일반적으로 애플리케이션의 프로젝트 폴더 외부에 있는 파일입니다. 이러한 파일은 솔루션 탐색기에 오버레이된 바로 가기 아이콘이 있는 일반 파일로 표시됩니다.
연결된 파일은 <Compile Include="..."> 요소를 사용하여 .pyproj 파일에 지정됩니다. 연결된 파일은 디렉터리 구조 외부의 상대 경로를 사용하는 경우 암시적입니다 . 파일이 솔루션 탐색기 내에서 경로를 사용하는 경우 연결된 파일은 명시적입니다. 다음 예제에서는 명시적으로 연결된 파일을 보여줍니다.
<Compile Include="..\test2.py">
<Link>MyProject\test2.py</Link>
</Compile>
연결된 파일은 다음 조건에서 무시됩니다.
- 연결된 파일은
Link메타데이터를 포함하고 있으며,Include특성에 지정된 경로는 프로젝트 디렉터리 내에 있습니다. - 연결된 파일은 프로젝트 계층 구조 내에 있는 파일을 복제합니다.
- 연결된 파일에는 메타데이터
Link가 포함되어 있으며Link경로는 프로젝트 계층 구조 외부에 있는 상대 경로입니다. - 링크 경로가 루트입니다.
연결된 파일 작업
기존 항목을 링크로 추가하려면 파일을 추가할 프로젝트의 폴더를 마우스 오른쪽 단추로 클릭하고기존 항목>를 선택합니다. 대화 상자에서 파일을 선택한 다음링크로 추가를> 선택합니다. 충돌하는 파일이 없으면 이 명령은 선택한 폴더에 링크를 만듭니다. 그러나 이름이 같은 기존 파일이나 해당 파일에 대한 링크가 프로젝트에 이미 있는 경우 링크가 추가되지 않습니다.
프로젝트 폴더에 이미 있는 파일에 연결하려고 하면 파일이 링크가 아닌 일반 파일로 추가됩니다. 파일을 링크로 변환하려면 파일>다른 이름으로 저장 을 선택하여 파일을 프로젝트 계층 구조 외부의 위치에 저장합니다. Visual Studio는 자동으로 파일을 링크로 변환합니다. 마찬가지로 파일저장> 프로젝트 계층 내 어딘가에 파일을 저장하여 링크를 다시 변환할 수 있습니다.
솔루션 탐색기에서 연결된 파일을 이동하면 링크가 이동되지만 실제 파일은 영향을 받지 않습니다. 마찬가지로 링크를 삭제하면 파일에 영향을 주지 않고 링크가 제거됩니다.
연결된 파일의 이름을 바꿀 수 없습니다.
References
Visual Studio 프로젝트는 솔루션 탐색기의 참조 노드 아래에 표시되는 프로젝트 및 확장에 대한 참조 추가를 지원합니다.
확장 참조는 일반적으로 프로젝트 간의 종속성을 나타내며 디자인 타임에 IntelliSense를 제공하거나 컴파일 시간에 연결하는 데 사용됩니다. Python 프로젝트는 비슷한 방식으로 참조를 사용하지만 Python의 동적 특성으로 인해 주로 디자인 타임에 개선된 IntelliSense를 제공하는 데 사용됩니다. 또한 Microsoft Azure에 배포하여 다른 종속성을 설치하는 데 사용할 수도 있습니다.
확장 모듈 작업
파일에 대한 참조를 .pyd 사용하면 생성된 모듈에 대해 IntelliSense를 사용할 수 있습니다. Visual Studio는 .pyd 파일을 Python 인터프리터로 로드하고 해당 형식과 함수를 조사합니다. 또한 Visual Studio는 서명 도움말을 제공하기 위해 함수에 대한 문서 문자열을 구문 분석하려고 시도합니다.
디스크에서 확장 모듈이 업데이트되는 경우 Visual Studio는 백그라운드에서 모듈을 다시 분석합니다. 이 작업은 런타임 동작에는 영향을 주지 않지만, 분석이 완료되기 전에는 일부 완료 항목을 이용할 수 없습니다.
모듈이 포함된 폴더에 검색 경로를 추가해야 할 수도 있습니다.
.NET 프로젝트 작업
IronPython을 사용할 때 .NET 어셈블리에 대한 참조를 추가하여 IntelliSense를 사용하도록 설정할 수 있습니다. 솔루션의 .NET 프로젝트의 경우 Python 프로젝트에서 참조 노드를 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택합니다. 대화 상자에서 프로젝트 탭을 선택하고 원하는 프로젝트로 이동합니다. 별도로 다운로드한 DLL의 경우 찾아보기 탭을 대신 선택하고 원하는 DLL로 이동합니다.
IronPython의 참조는 메서드를 호출한 clr.AddReference('<AssemblyName>') 후에야 사용할 수 있으므로 어셈블리에 적절한 clr.AddReference 메서드 호출을 추가해야 합니다. 이 호출은 일반적으로 코드의 시작 부분에 추가됩니다. 예를 들어 Visual Studio에서 IronPython Windows Forms 애플리케이션 (Visual Studio 2019에서 사용 가능) 프로젝트 템플릿에서 만든 코드에는 파일 맨 위에 두 번의 호출이 포함됩니다.
import clr
clr.AddReference('System.Drawing')
clr.AddReference('System.Windows.Forms')
from System.Drawing import *
from System.Windows.Forms import *
# Other code omitted
WebPI 프로젝트 작업
WebPI 피드를 통해 더 많은 구성 요소를 설치할 수 있는 Microsoft Azure Cloud Services에 배포하기 위한 WebPI(웹 플랫폼 설치 관리자) 제품 항목에 대한 참조를 추가할 수 있습니다. 기본적으로 표시되는 피드는 Python 전용이며 Django, CPython 및 기타 핵심 구성 요소를 포함합니다. 다음 이미지와 같이 사용자 고유의 피드를 선택할 수도 있습니다. Microsoft Azure에 게시하면 설치 작업이 참조된 모든 제품을 설치합니다.
중요합니다
WebPI 프로젝트는 Visual Studio 2017 또는 Visual Studio 2019에서 사용할 수 없습니다.