개요
다루고있는 모듈에는 세 가지 일반적인 범주가 있습니다.
- OS 패키지 시스템을 가진 모든 사용자를 위해 설치된 지원 프로그램. (여기에는 Python으로 프로그래밍하는 사람들이 사용하는 도구와 라이브러리가 포함될 수도 있습니다. 아래를 참조하십시오.)이를 위해 OS 패키지를 사용할 수있는 곳에서 사용하고
pip
필요한 경우 시스템 디렉토리에 설치합니다.
- 특정 사용자가 자신의 용도로만 설치 한 프로그램과 Python을 스크립팅 언어로 "매일"사용하는 특정 측면의 경우에도 해당 프로그램을 지원합니다. 이 동안 그녀는 사용
pip --user
아마도 pyenv 또는 pythonz 및 이와 유사한 도구와 전술을.
- 특정 응용 프로그램의 개발 및 사용을 지원합니다. 이를 위해 당신은
virtualenv
(또는 비슷한 도구)를 사용합니다.
여기의 각 레벨은 이전 레벨에서 지원을받을 수도 있습니다. 예를 들어 (2)의 사용자는 OS 패키지를 통해 설치된 Python 인터프리터에 의존 할 수 있습니다.
좀 더 자세히 설명하면 다음과 같습니다.
시스템 프로그램 및 패키지
"실행"하려는 Python으로 작성된 프로그램은 간단합니다. OS 설치 도구를 사용하여 필요한 것을 가져 오십시오. 이것은 비 파이썬 프로그램과 다르지 않습니다. 이것은 컴퓨터의 사용자가 의존하기 시작할 수있는 Python 도구 / 라이브러리 (예 : Python 인터프리터 자체)를 가져올 수 있습니다. 의존성을 이해하고 이상적으로는 의존성을 제공하지 않는 호스트에서 처리 할 수있는 대체 수단을 알고있는 한 문제가되지 않습니다.
이러한 의존성에 대한 일반적이고 간단한 예는로 ~/.local/bin/
시작하는 개인 스크립트 중 일부입니다 #!/usr/bin/env python
. RH / CentOS 7 및 대부분의 우분투 설치에서 (파이썬 2에서 실행되는 한) 제대로 작동합니다. 기본 데비안 설치 또는 Windows에는 없습니다. OS 패키지에 의존하는 방식이 많이있는 개인 환경을 싫어하는만큼 (여러 개의 다른 OS에서 작업하고 있음) 이와 같이 상당히 수용 가능한 것으로 보입니다. 시스템 Python이없고 얻을 수없는 희귀 호스트에 대한 백업 계획은 아래 설명과 같이 사용자 시스템과 함께하는 것입니다.
시스템 파이썬 인터프리터를 사용하는 사람들은 일반적으로 시스템에 의존합니다 pip3
. 그것은 시스템 의존성에 대한 선을 그리는 곳입니다. virtualenv
앞으로 나 자신을 다루는 모든 것. (예를 들어, 표준 활성화 스크립트 는 경로에 pip3
있거나 pip
경로 에 의존 하지만 virtualenv
생성하는 가상 환경을 부트 스트랩하기 위해 자체 사본을 다운로드합니다 .
즉, 더 많은 개발 환경을 사용할 수있게 만드는 것이 합리적 일 수 있습니다. 시스템 버전을 사용하려는 복잡한 패키지 (예 : DBMS)에 대한 Python 인터페이스가있을 수 있으며 시스템이 사용자가 대화하는 데 사용할 특정 Python 라이브러리 코드를 선택하도록하는 것이 가장 좋습니다. 또는 Python 클래스의 기본 개발 환경으로 많은 호스트를 배포하고 표준 시스템 패키지를 사용하여 가장 쉽게 자동화 할 수 있습니다.
사용자 "매일"프로그램 및 패키지
가상 환경에 적합하지 않은 Python 라이브러리 또는 프로그램이있을 수 있습니다 (예 : virtualenvwrapper ). 가상 환경에 적합하지 않거나 명령 행에서 자주 사용하는 것들입니다. 비 파이썬 작업. 시스템 버전을 설치하는 기능이 있어도 최신 버전의 도구와 해당 종속성을 사용하려고하므로 자신이 직접 설치하는 것이 더 편할 수 있습니다.
pip --user
파이썬 인터프리터 자체와 같은 특정 종속성은 그 이상을 요구하지만 일반적으로 사람들이 이것을 위해 사용할 것입니다. pyenv 와 pythonz 는 개인 통역사 ( ~/.local/bin
기본 통역사로 설치하든 그렇지 않든) 를 구축하는 데 유용하며 , 개발자 라이브러리를 사용할 수있는 경우 항상 소스에서 직접 "수동으로"구축 할 수 있습니다.
나는 virtualenvwrapper (내가 끊임없이 사용하기 때문에)와 아마도 최신 버전의 pip를 여기에 설치하려고합니다. 표준 라이브러리 외부 또는 Python 3에 의존하여 많은 호스트에서 사용되는 개인 스크립트에 대한 의존성을 피하려고합니다. (우리는 점점 더 많은 개인 스크립트를 파이썬으로 옮길 때 얼마나 오래 참을 수 있는지 알 수 있습니다.)
별도의 응용 프로그램 개발 및 런타임 환경
이것은 일반적인 virtualenv 일입니다. 개발을 위해서는 거의 항상 virtualenv를 사용하여 시스템 종속성을 사용하지 않거나 다른 Python 버전을 테스트하기 위해 둘 이상을 사용하지 않아야합니다.
이러한 가상 환경은 사용자 환경의 오염을 피하려는 많은 종속성이있는 응용 프로그램에도 적합합니다. 예를 들어 Jupyter 노트북 등 을 실행하기 위해 virtualenv를 설정합니다 .