Python

적용 가능성 및 통합

circle-info

Python은 Snyk Code 및 Snyk 오픈소스(Open Source)에서 지원됩니다.

사용 가능한 통합:

  • SCM 가져오기

  • CLI 및 IDE: 앱 테스트 또는 모니터링

사용 가능한 기능:

  • pkg:pypi를 사용하여 앱의 SBOM 테스트

  • pkg:pypi를 사용하여 앱의 패키지 테스트

Snyk Code용 Python

Snyk Code와 함께 사용하는 Python의 경우, 3.11 버전까지 지원됩니다. 최신 버전에서 도입된 언어 기능은 지원되지 않습니다.

Snyk Code용 Python의 경우, 다음 파일 형식이 지원됩니다: .py

사용 가능한 기능:

  • 보고서(Reports)

  • 사용자 정의 규칙(Custom rules)

  • 파일 간 분석(Interfile analysis)

지원되는 프레임워크 및 라이브러리

Python의 경우, 다음 프레임워크 및 라이브러리가 지원됩니다:

  • AioHTTP

  • iopg

  • aiofiles

  • argparse

  • anthropic

  • bottle

  • CherryPy

  • Django

  • defusedxml

  • fastapi

  • fastMCP

  • flask

  • flask_pymongo

  • google.cloud.bigquery

  • google_generativeai

  • grpcio

  • huggingface_hub

  • httpx

  • ldap3

  • libxml

  • lxml

  • mistralai

  • modelcontextprotocol/python-sdk

  • mongoengine

  • openai

  • pandas

  • paramiko

  • peewee

  • pickle

  • pilyaml

  • pyca/cryptography

  • pymongo

  • pymssql

  • pyramid

  • psycopg

  • python-ldap

  • Python Standard Library

  • requests

  • sqlite3 (또는 pysqlite2)

  • sqlalchemy

  • turboGears

  • urllib

  • werkzeug

디렉토리 레이아웃

Snyk Code는 정확한 분석을 위해 Python 프로젝트가 표준 디렉토리 레이아웃을 따르는 것에 의존합니다. 구체적으로, Snyk Code는 디렉토리 구조를 기반으로 패키지와 모듈을 자동으로 식별하는 setuptools 자동 검색(automatic discovery)arrow-up-right과 호환되는 프로젝트를 기대합니다. 여기에는 패키지 초기화 파일에 정의된 심볼이 올바르게 가져오기(import)되도록 보장하는 init.py 파일에 대한 지원이 포함되어, 더욱 정확하고 심층적인 분석을 가능하게 합니다.

src-layoutflat-layout이 모두 지원됩니다. 이러한 컨벤션을 적절히 준수하면 스캐너가 코드를 효과적으로 추적하고 정확한 결과를 제공할 수 있습니다.

Snyk 오픈소스용 Python

circle-info

일부 Python 프로젝트에는 특정 버전의 Python이 필요한 종속성이 포함될 수 있습니다. 따라서 스캔 시 사용되는 Python 버전은 Snyk이 생성하는 종속성 트리에 영향을 줄 수 있습니다.

Snyk 오픈소스와 함께 사용하는 Python의 경우, 다음 Python 버전이 지원됩니다: 2.7, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14

지원되는 패키지 관리자 및 레지스트리

pipenv 프로젝트의 경우, Snyk은 각 Pipfile에 지정된 Python 버전 정보를 사용하여 스캔에 사용할 메이저 및 마이너 버전을 선택합니다. 예:

특정 패치 버전은 무시됩니다. Snyk은 각 시리즈의 최신 패치 버전을 사용합니다.

Pipfile에 다음이 포함된 경우 Snyk은 기본적으로 Python 3.10을 사용합니다:

  • Python 버전 정보 없음

  • 메이저 버전만 있음

  • 지원되지 않는 버전

Poetry 프로젝트의 경우 Python 버전을 지정할 필요가 없습니다. Poetry 파일에는 네이티브 도구를 실행하지 않고도 전체 종속성 트리를 구축하기에 충분한 정보가 포함되어 있습니다.

지원되는 파일 형식

  • Poetry: pyproject.tomlpoetry.lock

  • Pip: requirements.txt

  • Pipenv: pipfilepipfile.lock

  • setup.py: setup.py

사용 가능한 기능

  • Fix PRs (Pip에서만 지원됨)

  • 라이선스 스캐닝(License scanning)

  • 보고서(Reports)

circle-info

플랜에 따라 일부 기능을 사용하지 못할 수 있습니다. 자세한 내용은 플랜 및 가격 책정(plans and pricing)arrow-up-right을 참조하십시오.

IDE 및 CI/CD 지원

지원되는 IDE 중 하나를 사용하여 Python 코드를 작성하는 경우, Python 매니페스트 파일을 올바르게 스캔하기 위해 추가해야 하는 몇 가지 구성이 있습니다.

프로젝트를 스캔하려면 먼저 관련 패키지 관리자를 설치하고 프로젝트에 지원되는 매니페스트 파일이 포함되어 있는지 확인해야 합니다.

운영 체제에 종속적이고 Linux에서 지원되지 않는 Python 패키지는 Snyk SCM 스캔과 호환되지 않아 오류가 발생할 수 있습니다.

가상 환경(Virtual environment) 구성

가상 환경을 사용하는 경우 다음 정보를 추가해야 합니다:

  • Snyk 통합 설정에서 Additional Options 필드를 찾습니다.

  • 이 필드에 PYTHON_PATH를 추가합니다. 예: --command=.venv/bin/python.

기본적으로 Snyk IDE 통합은 IDE에 표시되는 프로젝트의 루트에서 *req*.txt 파일을 찾습니다.

여러 디렉토리 스캔

프로젝트 루트 내의 다른 디렉토리에 매니페스트 파일이 있는 경우, Snyk은 지시가 없는 한 이를 식별할 수 없습니다.

Snyk 통합 설정에서 Additional Options 필드를 찾습니다. 재귀 검색(recursive search)을 활성화하고 Additional Options 필드에 --all-projects 옵션을 추가합니다.

circle-exclamation

Last updated