2012-05-25 2 views
2

저는 일반적으로 파이썬 모듈을 설치하는 것을 신경 쓰지 않습니다. web2py를 사용하고 모듈 폴더에 덤프하고 로컬 가져 오기를 처리하도록합니다. 이것은 항상 시스템을 사용하는 가장 간단한 방법처럼 보였습니다. 시스템 전체에서 종속성을 처리하는 것에 대해 결코 느껴 보지 않았고, 가상 환경을 망쳐 놓은 것처럼 느껴본 적이 없었습니다.파이썬 모듈을 설치해야합니까?

one of my other questions에서 회답이, 제 3 자 모듈에 대한 가장 좋은 방법은 (바람직하게는 VIRTUALENV에서) PIP 또는 easy_install을 통해 그들에게 를 설치하는 것입니다 일반적으로

을했다, 그들은 PyPI로 볼 수 있다면, 어딘가에서 PYTHONPATH로 복사하는 것이 좋습니다. ... [그] 실행 스크립트를 설치하는 데 필요한 설치 스크립트 후크 을 실행하기 때문에, 모듈에서 그냥 복사하여 완료되지 않습니다 , C 확장 등을 구축 할 수 있습니다.

나는 이것을 완전히 이해하지 못했습니다. 항상 선호도가 더 높다고 생각했지만, 제 3 자 모듈을 설치하는 것이 더 나은 방법이며, 잠재적으로 문제를 일으키지 않을까요? web2py와 같은 프레임 워크를 사용하면 효과가 있습니까?

+1

응답자와 마찬가지로 C 확장은 빌드되지 않으며 실행 가능한 스크립트는 설치되지 않습니다. 일부 모듈은'templ.py '를 사용하여 특정 템플릿 소스 파일을 빌드하는 경우도 있지만 일반적이지는 않습니다. 일반적으로 항상 깨닫지는 않지만, 깨지면 즉시 명백하게 드러납니다. Virtualenvs는 실제로 처리 할 수있는 많은 작업이 아니며이를 처리하는 "올바른 방법"입니다. – Dougal

+0

모듈이 C 확장을 빌드하는지 어떻게 알 수 있습니까? – Yarin

+1

훌륭한 방법이 있는지 잘 모르겠습니다. 'Extension' 모듈의'setup.py'을 보거나'.py' 이외의 확장자를 가진 파일을 검색해서'.c','.cpp','.cxx','. C ','.h' 또는 확장 파일에 사용될 수있는 무수히 많은 다른 확장자 중 하나입니다. 웹 프로젝트에서 사용할 가능성이있는 대부분의 일반적인 Python 패키지에는 기존 라이브러리와의 인터페이스에 기반한 것처럼 계산 집약적 인 것들이있을 수 있습니다. – Dougal

답변

1

모듈에 따라 다르며 사용하려는 항목에 따라 다릅니다. 일부 패키지는 유용한 명령 행 도구와 함께 제공됩니다.이 도구는 적절하게 설치 한 경우에만 사용할 수 있습니다.

반대로 제어 할 권한이없는 환경에 배포 할 코드를 작성하는 경우 이있는 경우 대상 환경이 프로젝트 내에서 로컬로 코드 복사본을 유지할 수 있습니다. 패키지를 가지고 있지 않다 ... 물론 웹 프로젝트는 서비스 환경에 따라이 범주에 속하는 경우가 많습니다.

+3

물론, 사용자 정의 부트 스트랩 스크립트 virtualenv (requirements.txt를 작성하고 그것을 사용하여 virtualenv의 핍에'서브 프로세스 'after_install' 후크에서) 동일한 문제를보다 안정적으로 해결하고 자동화 (automation), 의존성 처리, 쉬운 업그레이드, 수동 오류에 덜 취약한 모든 좋은 것들을 제공합니다. 그것은 약간의 네트워크 액세스를 필요로하지만 사실상 웹 dev에 주어진 것처럼 보입니다.) – delnan

+2

Google App Engine 또는 일부 공유 호스팅과 같은 샌드 박스 환경은 종종 virtualenv 부트 스트랩 스크립트와 같은 것을 실행할 수 없습니다. 나는 그것이 가능하다면 일할 수있는 좋은 방법이라는 데 동의한다! –

+0

고마워 .- 내가 virtualenvs에 뼈를 올려야 할 것 같아. – Yarin