2014-08-28 2 views
0

개발자가 일부 패키지를 사용해야한다는 것을 알았을 때 프로젝트에서 작업하고 있다고합니다. 그는 pip를 사용하여 설치합니다. 이제 설치 한 후 개발자는 requirements 파일/setup.py에 종속성으로 기록합니까?프로젝트 전체에서 파이썬 의존성을 처리하는 방법은 무엇입니까?

프로젝트의 모든 종속성을 적어 두는 것을 잊었을 때 (또는 오랫동안하지 않았기 때문에 그가 잘 모르는 경우) 동일한 개발사는 무엇을합니까?

PyPi의 외부 패키지로 작업 할 때 워크 플로우는 무엇입니까?

답변

4

명령 :

pip freeze > requirements.txt 

이 requirements.txt로 파이썬 환경에서 현재 모든 종속성을 복사합니다. http://pip.readthedocs.org/en/latest/reference/pip_freeze.html

+0

개발자가 virtualenv를 사용하고 있었고 프로젝트에만 설치된 모듈을 제한했으면 좋겠어요. 그렇지 않으면 시스템에 모든 모듈이 전역으로 설치됩니다. 여전히 작동하지만, 아마 사용되지 않는 많은 모듈을 얻을 것입니다. – veroxii

1

프로젝트에 따라 다릅니다.

라이브러리에서 작업하는 경우 종속성을 setup.py에 두어 라이브러리를 PyPi에 올려 놓으면 사람들이 해당 라이브러리를 자동으로 설치할 수있게됩니다.

Python 응용 프로그램 (웹 응용 프로그램 가능)에서 작업하는 경우 requirements.txt 파일을 쉽게 배포 할 수 있습니다. 모든 코드를 필요한 위치에 복사하고 virtualenv 또는 pyvenv를 사용하여 가상 환경을 설정 한 다음 pip install -r requirements.txt을 수행 할 수 있습니다. (라이브러리를 전 세계적으로 엉망이 없도록 개발할 때도이 작업을 수행해야합니다.)

설치가 끝나자 마자 설치하려는 패키지를 마지막에 필요한 것보다 더 쉽게 작성하는 것이 더 쉽습니다. 내가 잊지 못할 일은 먼저 파일에 패키지를 쓴 다음 pip install -r으로 설치하는 것입니다.

pip freeze은 설치 한 내용을 잊어 버린 경우에 유용하지만 작성한 파일을 항상 읽어야 거기에있는 모든 것이 실제로 필요한지 확인해야합니다. virtualenv를 사용하고 있다면 모든 패키지를 전 세계적으로 설치하는 것보다 더 나은 결과를 얻을 수 있습니다.

관련 문제