Python 패키지 정보 가져오기

적용 대상: SQL Server 2017(14.x) 이상 Azure SQL Managed Instance

이 문서에서는 SQL Server Machine Learning Services빅 데이터 클러스터에서 버전 및 설치 위치를 포함하여 설치된 Python 패키지에 대한 정보를 가져오는 방법을 설명합니다. 예제 Python 스크립트는 설치 경로 및 버전과 같은 패키지 정보를 나열하는 방법을 보여 줍니다.

이 문서에서는 SQL Server Machine Learning Services에서 버전 및 설치 위치를 포함하여 설치된 Python 패키지에 대한 정보를 가져오는 방법을 설명합니다. 예제 Python 스크립트는 설치 경로 및 버전과 같은 패키지 정보를 나열하는 방법을 보여 줍니다.

이 문서에서는 Azure SQL Managed Instance Machine Learning Services에서 버전 및 설치 위치를 포함하여 설치된 Python 패키지에 대한 정보를 가져오는 방법을 설명합니다. 예제 Python 스크립트는 설치 경로 및 버전과 같은 패키지 정보를 나열하는 방법을 보여 줍니다.

기본 Python 라이브러리 위치

SQL Server를 사용하여 기계 학습을 설치하는 경우 설치하는 각 언어의 인스턴스 수준에서 단일 패키지 라이브러리가 생성됩니다. 인스턴스 라이브러리는 SQL Server에 등록된 보안 폴더입니다.

SQL Server의 데이터베이스 내에서 실행되는 모든 스크립트나 코드는 인스턴스 라이브러리에서 함수를 로드해야 합니다. SQL Server는 다른 라이브러리에 설치된 패키지에 액세스할 수 없습니다. 이것은 원격 클라이언트에도 적용됩니다. 서버 컴퓨팅 컨텍스트에서 실행되는 모든 Python 코드는 인스턴스 라이브러리에 설치된 패키지만 사용할 수 있습니다. 서버 자산을 보호하려면 컴퓨터 관리자만 기본 인스턴스 라이브러리를 수정할 수 있습니다.

Python에 대한 이진 파일의 기본 경로는 다음과 같습니다.

C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES

여기서는 기본 SQL 인스턴스인 MSSQLSERVER를 가정합니다. SQL Server가 사용자 정의 명명된 인스턴스로 설치된 경우에는 지정된 이름이 대신 사용됩니다.

Python에 대한 이진 파일의 기본 경로는 다음과 같습니다.

C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\PYTHON_SERVICES

여기서는 기본 SQL 인스턴스인 MSSQLSERVER를 가정합니다. SQL Server가 사용자 정의 명명된 인스턴스로 설치된 경우에는 지정된 이름이 대신 사용됩니다.

다음 SQL 명령을 실행하여 외부 스크립트를 사용하도록 설정합니다.

sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH override;

중요

SQL Managed Instance에서 sp_configure 및 RECONFIGURE 명령을 실행하면 RG 설정을 적용하기 위해 SQL Server 다시 시작이 트리거됩니다. 이 경우 몇 초 동안 사용이 불가능할 수 있습니다.

현재 인스턴스의 기본 라이브러리를 확인하려면 다음 SQL 문을 실행합니다. 이 예제에서는 Python sys.path 변수에 포함된 폴더 목록을 반환합니다. 이 목록에는 현재 디렉터리와 표준 라이브러리 경로가 포함됩니다.

EXECUTE sp_execute_external_script
  @language =N'Python',
  @script=N'import sys; print("\n".join(sys.path))'

변수 sys.path 및 이 변수가 모듈에 대한 인터프리터의 검색 경로를 설정하는 데 사용되는 방법에 대한 자세한 내용은 모듈 검색 경로를 참조하세요.

참고

pip 또는 유사한 메서드를 사용하여 SQL 패키지 라이브러리에 직접 Python 패키지를 설치하지 마세요. 대신 sqlmlutils를 사용하여 SQL 인스턴스에 패키지를 설치합니다. 자세한 내용은 sqlmlutils를 사용하여 Python 패키지 설치를 참조하세요.

기본 Microsoft Python 패키지

설치하는 동안 Python 기능을 선택하면 다음 Microsoft Python 패키지가 SQL Server Machine Learning Services와 함께 설치됩니다.

패키지 버전 Description
revoscalepy 9.4.7 데이터 가져오기 및 변환, 모델링, 시각화 및 분석을 위해 원격 컴퓨팅 컨텍스트, 스트리밍, rx 함수의 병렬 실행에 사용됩니다.
microsoftml 9.4.7 Python에서 기계 학습 알고리즘을 추가합니다.

포함된 Python 버전에 대한 자세한 내용은 Python 및 R 버전을 참조하세요.

구성 요소 업그레이드

기본적으로 Python 패키지는 서비스 팩 및 누적 업데이트를 통해 새로 고쳐집니다. 핵심 Python 구성 요소의 추가 패키지 및 전체 버전 업그레이드는 제품 업그레이드를 통해서만 가능합니다.

기본 오픈 소스 Python 패키지

설치하는 동안 Python 언어 옵션을 선택하면 Anaconda 4.2 배포판(Python 3.5 이상)이 설치됩니다. Python 코드 라이브러리 외에도 표준 설치에는 샘플 데이터, 단위 테스트 및 샘플 스크립트가 포함되어 있습니다.

중요

SQL Server 설치 프로그램을 통해 설치된 Python 버전을 웹의 최신 버전으로 수동으로 덮어쓰지 않도록 합니다. Microsoft Python 패키지는 특정 버전의 Anaconda을 기준으로 합니다. 설치를 수정하면 불안정해질 수 있습니다.

설치된 모든 Python 패키지 나열

다음 예제 스크립트는 SQL Server 인스턴스에 설치된 모든 Python 패키지 목록을 표시합니다.

EXECUTE sp_execute_external_script
  @language = N'Python',
  @script = N'
import pkg_resources
import pandas
OutputDataSet = pandas.DataFrame(sorted([(i.key, i.version) for i in pkg_resources.working_set]))'
WITH result sets((Package NVARCHAR(128), Version NVARCHAR(128)));

단일 Python 패키지 찾기

Python 패키지를 설치하고 특정 SQL Server 인스턴스에서 사용할 수 있도록 하려면 저장 프로시저를 실행하여 패키지를 찾아서 메시지를 반환할 수 있습니다.

예를 들어, 다음 코드는 scikit-learn 패키지를 찾습니다. 패키지가 발견되면 코드에서 패키지 버전을 출력합니다.

EXECUTE sp_execute_external_script
  @language = N'Python',
  @script = N'
import pkg_resources
pkg_name = "scikit-learn"
try:
    version = pkg_resources.get_distribution(pkg_name).version
    print("Package " + pkg_name + " is version " + version)
except:
    print("Package " + pkg_name + " not found")
'

결과:

STDOUT message(s) from external script: Package scikit-learn is version 0.20.2

Python 버전 보기

다음 예제 코드는 SQL Server 인스턴스에 설치된 Python 버전을 반환합니다.

EXECUTE sp_execute_external_script
  @language = N'Python',
  @script = N'
import sys
print(sys.version)
'

다음 단계