2012-08-06 2 views
3

패키지 설치 순서가 파이썬에서 중요한지 아는 사람 있습니까? 나는 건물입니다 장고 웹 사이트에 대한 더 구체적으로 내 핍 requirements.txt했다 : Heroku가에 배포 할 때Python에서 패키지 설치 순서 변경

Django==1.4 
MySQL-python==1.2.3 
django-evolution==0.6.7 
django-pagination==1.0.7 
boto==2.5.2 
numpy==1.6.2 
requests==0.13.1 
simplejson==2.5.2 
gunicorn==0.14.6 

응용 프로그램이 다음과 같은 오류와 충돌 할 :

2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [12] [INFO] Worker exiting (pid: 12) 
2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [8] [INFO] Worker exiting (pid: 8) 
2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [4] [INFO] Handling signal: term 
2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [7] [INFO] Worker exiting (pid: 7) 
2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [4] [INFO] Starting gunicorn 0.14.6 
2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [4] [INFO] Listening at: http://0.0.0.0:20132 (4) 
2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [4] [INFO] Using worker: sync 
2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [7] [INFO] Booting worker with pid: 7 
2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [8] [INFO] Booting worker with pid: 8 
2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [9] [INFO] Booting worker with pid: 9 
2012-08-05T09:26:56+00:00 app[web.1]: 2012-08-05 09:26:56 [10] [INFO] Booting worker with pid: 10 
2012-08-05T09:26:57+00:00 heroku[web.1]: State changed from starting to up 
2012-08-05T09:26:57+00:00 heroku[web.1]: Process exited with status 143 
2012-08-05T09:27:17+00:00 app[web.1]: Usage: gunicorn [options] 
2012-08-05T09:27:17+00:00 app[web.1]: gunicorn: error: no such option: --workers 
2012-08-05T09:27:17+00:00 app[web.1]: 
2012-08-05T09:27:17+00:00 app[web.1]: 2012-08-05 09:27:17 [9] [INFO] Worker exiting (pid: 9) 

을 내 Procfile이 경우 다음과 같이

web: python manage.py collectstatic --noinput; gunicorn commerical_production.wsgi:application --workers=4 --bind=0.0.0.0:$PORT 

요구 사항 순서를 변경하면 문제가 해결되었습니다.

Django==1.4 
gunicorn==0.14.6 
MySQL-python==1.2.3 
django-evolution==0.6.7 
django-pagination==1.0.7 
boto==2.5.2 
numpy==1.6.2 
requests==0.13.1 
simplejson==2.5.2 

이 문제로 다른 사람 실행이

내가 운이 좋게 시도하고 수입의 순서를 변경하는 추측하여이 문제를 발견하지만 내 질문은 ( gunicorn 지금 상단으로 이동 참고) 또는 알고 requirements.txt에서 패키지를 설치할 때 패키지 순서가 달라지는 이유는 무엇입니까? 이 문제는 내 앱에 더 큰 종속성 문제가 있음을 나타낼 수 있습니까?

+1

응용 프로그램이 실행되기 전에 모든 것이 설치되어야하기 때문에 이것은 일반적으로 중요하지 않습니다. 영웅이 뭔가 다른 것을하고 있는지 확실하지 않습니다. –

답변

1

Pip는 easy_install과 같이 패키지 종속성을 처리하는 데 그리 좋지 않습니다. 우리는 프로젝트에서 동일한 문제를 겪었습니다. req.txt의 순서가 올바르더라도 명령과 관련된 종속성 문제가있었습니다.

내 솔루션 easy_install을 할 수있는 req.txt을 공급하는 것입니다,하지만 당신은 편집 또는 등 GitHub의에서 사람입니다 패키지에주의해야보다

당신은 링크 아래에 확인 할 수 있습니다

:

http://metak4ml.blogspot.com/2009/08/easyinstall-read-pip-requirementstxt.html http://community.webfaction.com/questions/1220/using-easy_install-to-get-all-dependencies-listed-in-requirementstxt

0

Pyton (읽기 줄 응답은 우리가하는 일에 가까운 상태) 설치 설치 스크립트는 이미 요구 사항과 순서를 유지하므로 설치 프로세스는 i를 존중하고 설치합니다. n 요구 사항 파일에서 각 앱에 대한 모든 요구 사항을 주문하십시오. 당신은 다른 사람을 필요로 자신의 응용 프로그램이있는 경우

그래서, 만 설정 파일에 사용자의 요구 사항을 넣어 컴파일을 필요로하지 않는 타사 파이썬 애플 리케이션 들어 requirements.txt

에서 기본 응용 프로그램을 등록하면 요구 사항의 순서에 대해 걱정할 필요가 없습니다.

그렇지 않으면 eazy_install은 더 이상 사용되지 않으며 대신 pip를 사용하십시오.