2015-01-28 3 views
0

저는 Azure와 Python을 처음 사용하고 Azure에서 Webjob으로 파이썬 스크립트를 실행하려고합니다. webjob에 모든 패키지 파일을 포함시켜야한다는 것을 알고 있지만 오류의 원인이되는 몇 가지 종속성이 누락되었다고 생각합니다. 내 수입을 다시 여기lxml을 사용하는 Azure WebJob은 계속 실패합니다 ... 왜?

[01/28/2015 03:53:29 > 52e03f: SYS INFO] Status changed to Initializing 
[01/28/2015 03:53:35 > 52e03f: SYS INFO] Run script 'get_teams_espn.py' with script host - 'PythonScriptHost' 
[01/28/2015 03:53:35 > 52e03f: SYS INFO] Status changed to Running 
[01/28/2015 03:53:36 > 52e03f: ERR ] Traceback (most recent call last): 
[01/28/2015 03:53:36 > 52e03f: ERR ] File "get_teams_espn.py", line 45, in <module> 
[01/28/2015 03:53:36 > 52e03f: ERR ]  teams_dict = teams_espn(url) 
[01/28/2015 03:53:36 > 52e03f: ERR ] File "get_teams_espn.py", line 23, in teams_espn 
[01/28/2015 03:53:36 > 52e03f: ERR ]  soup = BeautifulSoup(r.content, 'lxml') 
[01/28/2015 03:53:36 > 52e03f: ERR ] File "site-packages\bs4\__init__.py", line 152, in __init__ 
[01/28/2015 03:53:36 > 52e03f: ERR ]  % ",".join(features)) 
[01/28/2015 03:53:37 > 52e03f: ERR ] bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library? 
[01/28/2015 03:53:37 > 52e03f: SYS INFO] Status changed to Failed 
[01/28/2015 03:53:37 > 52e03f: SYS ERR ] Job failed due to exit code 1 

: :이 스크립트 작업을해야 않는 다른 어떤 패키지

import sys 
sys.path.append("site-packages") 

import csv 
import lxml 
import requests 
from bs4 import BeautifulSoup 

다음은 오류 로그는? 또는 패키지 파일을 찾기 위해 스크립트를 설정하지 않았습니까? 도와주세요, 고마워요!

+0

'lxml' 모듈이 설치되어 있지 않은 것 같습니다. – alecxe

+0

미안하지만이 말은 바보 같지만 무슨 뜻입니까? 나는 내가 코드에서 가져올 scriot으로로드 된 패키지에'lxml'을 가지고 있습니다. 내가해야 할 일이 있습니까? 그렇지 않으면 코드가 올바르게 가져 오지 못합니까? – jdesilvio

+0

requirements.txt 파일에 lxml이 있고 하늘색 컴퓨터에 설치되어 있습니까? – Parker

답변

0

Azure 환경에서 직접 빌드 할 수없는 python 패키지를 사용할 수있었습니다. 예를 들어, lxml 바인드에 의존하는 패키지를 포함하려는 경우입니다. 이 문제는 Azure 환경에 원격 리소스를 다운로드하고 컴파일하는 대신 바퀴 파일에서 직접 설치하도록 지시함으로써 해결할 수 있습니다.

폴더 '조타실'을 만들기 :

mkdir wheelhouse 

Gohlke's Unofficial Windows Binaries에서 적절한 lxml 바퀴 이진 파일을 확보하고 그것이 '조타실'디렉토리에 복사합니다. 나를 위해 lxml-3.6.0-cp34-cp34m-win32.whl이 작업을 수행했습니다. 제대로 작동하려면 lxml-3.6.0-cp34-cp34m-win32.whllxml-3.6.0-py3-none-any.whl으로 변경해야했습니다. 마지막으로, 1 행에서 다음 requirements.txt에 포함해야합니다 :

--no-index 
--find-links wheelhouse 
lxml==3.6.0 
otherWheelsFile_pre-compiled==1.x.x 

첫 번째 줄은 원격 소스와 패키지를 설치 찾는 경우 두 번째 줄은 이야기를 확인하지 않도록 배치에 핍을 알려줍니다.

또한 웹 응용 프로그램과 관련된 패키지에 대해 바퀴 파일을 로컬로 만들었습니다. 모든 종속성이 해결되고 휠 파일이 wheelhouse 디렉토리에 있어야합니다.

관련 문제