Rails 의 Ubuntu Wiki 페이지에서 언급 한 것처럼 gem은 Rails / Ruby 종속성을 관리하는 것이 좋습니다.
Django와 같은 Python 패키지의 모범 사례는 무엇입니까? apt-get을 통해 설치해야합니까, 아니면 easy_install / pip를 PyPi에서 가져와야합니까?
Rails 의 Ubuntu Wiki 페이지에서 언급 한 것처럼 gem은 Rails / Ruby 종속성을 관리하는 것이 좋습니다.
Django와 같은 Python 패키지의 모범 사례는 무엇입니까? apt-get을 통해 설치해야합니까, 아니면 easy_install / pip를 PyPi에서 가져와야합니까?
답변:
몇 가지 주장이 있습니다.
이것은 대부분 사실입니다. 예를 들어 python-django
내가 설치 한대로 설치 하면 보안 업데이트가 제공됩니다. 이것은 당신이 apt 위에서 만 유지해야하기 때문에 업데이트를 푸시하기 전에 여전히 테스트해야합니다 (매번 테스트는 훌륭하지만).
를 사용한 경우 pip
업데이트를 확인하지 않을 수도 있습니다.
pip
적절한 "안정된"버전을 사용할 수 있도록 사용하십시오 .의심의 여지가 없습니다 : repos가 실제 세계보다 뒤떨어집니다. Django는 2.0이지만 Ubuntu의 LTS 버전 리포지토리 (많은 사람들이 서버 용으로 고집)는 Python 2와 함께 Ubuntu 16.4lts에서만 1.8을 얻지 만 여전히 보안 업데이트를 얻습니다.
pip
항상 최신 정보를 제공합니다. 당신은 그들 자신을 업데이트해야합니다.
Ubuntu를 다음 버전으로 dist-upgrade하면 많은 패키지가 업그레이드됩니다. 많은 것들이 바뀝니다. 장고에서 이것은 코드 비 호환성, 더 이상 사용되지 않는 것을 조심해야한다는 것을 의미하지만 다른 모든 파이썬 코드에도 동일하게 적용됩니다.
에 대한 마찬가지입니다 pip
만에 pip
당신이 한 번에 한 일을 얻는다. 문제점의 원인을 알고 수정 사항을 찾을 위치를 알 수 있습니다.
pip
+ virtualenv
물건을 따로 보관할 수 있습니다virtualenv
이식 가능한 작은 Python 환경을 가질 수 있습니다. 이를 통해 동일한 머신에서 서로 다른 여러 Python 환경을 실행할 수 있습니다.
코드를 관리하는 것과 같은 방식으로 환경을 관리 할 수 있기 때문에 유지 관리에 도움이 될 것 같습니다. VCS에도 환경을 저장하기도 하지만 12 개의 서로 다른 virtualenv
s는 12 개의 환경을 확인하고 업데이트 해야한다는 것을 기억 해야합니다.
편집 : 서버에서 Lucid에서 Precise로 끔찍한 업그레이드를 한 후에 혼합 Apt + pip (nr 1 및 2)에서 순수한 pip + virtualenv (nr. 4) 상황으로 전환했습니다. 사이트 당 하나의 virtualenv를 갖지 않고 수십 개의 사이트 사이에 하나의 virtualenv가 있습니다. 이것은 현재 작동하고 있습니다.
또한 pip로 설치된 패키지의 상태를 확인하는 작은 스크립트를 작성해야했습니다. 업데이트가있는 경우 수동으로 적용해야합니다 (로컬 virtualenv에서 로컬로 테스트하기 때문에 좋습니다). 이것은 원래보다 조금 더 고통 스럽지만 장기적으로는 훨씬 낫습니다.
리포지토리의 패키지
응용 프로그램이 Ubuntu에 특정한 방식으로 설치 될 때마다 설치해야합니다 . 그들은 우분투 컴퓨터에 설치할 수있는 안정적인 버전을 보장하며, pip를 통해 얻는 것보다 지원되고 때로는 더 성숙합니다. 많은 우분투 서버를 배포하거나 우분투 응용 프로그램을 작성하는 경우 가능한 경우이를 사용하십시오 .
그들은 때때로 우분투 특정 수정을 포함합니다.
pip 대 easy_install
장고 해커 인 제임스 베넷 (James Bennett)은 다음과 같이 말할 것도 없다.
Guido를 좋아한다면 setuptools 및 easy_install 사용을 중지하고 대신 distutils 및 pip를 사용하십시오.
차이점에 대한 자세한 내용 은 James Bennett (django)의 패키징 및 Ian Bicking (mozilla)의 “포장” 에 대한 몇 가지 수정 사항을 참조하십시오.
안전을 원한다면 virtualenv를 사용하여 pip 배포를 사용해보십시오 . 이렇게하면 격리 된 파이썬 환경이 제공되므로 모든 컴퓨터에서 앱을 실행할 수 있습니다.
조금만 기다려주세요. 어떤 사람들은 저와 동의하지 않을 것이라고 믿습니다.