2010-06-25 7 views
3

자이 썬 2.2 인스턴스가 내장 된 제품으로 작업하고 있습니다. 그것은 파이썬 표준 라이브러리가 없다. 내가 자이 썬의이 인스턴스를 실행하면 기본 경로는 자이 썬 2.2에서 urllib2 사용하기

['./run/Jython/Lib', './run/Jython', '__classpath__'] 

내가 ./run/Jython/Lib 디렉토리에 파이썬 2.2에서 평 모듈 파일을 모두 추가하고, 나는 가져올 수 있어요. 하지만 urllib2가를 사용하려는이 오류 얻을 :

지금까지 내가 말할 수있는
Traceback (innermost last): 
    File "<string>", line 2, in ? 
    File "./run/Jython/Lib/urllib2.py", line 90, in ? 
    File "./run/Jython/Lib/socket.py", line 41, in ? 
ImportError: no module named _socket 

의 _socket 모듈은 파이썬 LIB-dynload 라이브러리의 일부를 (_socket.so). 자이 썬이이 파일을 사용할 수 있습니까? 나는 그것을 내 길에 넣으려고했으나 아무런 효과가 없었다.

구글 검색은 다른 사람들이 자이 썬 2.2에서 urllib 및 urllib2를 사용할 수 있다고 말하고 있지만, 파이썬의 구형 및 최신 버전의 모듈 라이브러리를 사용해 봤다.

감사합니다.

답변

2

Andy,

나는 깨끗한 자이 썬 2.2.1을 설치하고 다음 스크립트를 성공적으로 실행했다.

$ ./jython 
Jython 2.2.1 on java1.6.0_17 
Type "copyright", "credits" or "license" for more information. 
>>> import urllib2 
>>> f = urllib2.urlopen('http://www.python.org/') 
>>> print f.read(100) 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm 
>>> 

나는 다시 돌아가서 Meandre 인프라 코드베이스를 확인했다. 필자는 내장 된 자이 썬의 경로에 약간의 수정이 추가 된 것을 발견했다. 그러나 이것이 주요한 문제는 아닙니다. 주요 문제는 Jython의 시스템 모듈이 Meandre 배포 번들에 없다는 것을 알았 기 때문입니다.

수동

<MEANDRE_HOME>/run/Jython/Lib 

<JYTHON_HOME>/lib 

에있는 내용을 복사하여 문제를 해결하고 서버 인스턴스를 다시 시작 할 수있다. 이제 인프라의 구성 요소에서 기본 모듈을 사용할 수 있어야합니다.

그게 나에게 알려주면 곧 알려 드리겠습니다.