2009-07-30 4 views
4

전체 Python 표준 라이브러리를 내 프로그램으로 가져 오는 방법이 필요합니다.전체 Python 표준 라이브러리 가져 오기

이것은 나쁜 생각처럼 보일 수 있지만 필자는 py2exe가 전체 표준 라이브러리를 프로그램과 함께 패키지하므로 내 사용자가 내가 제공 한 셸에서 가져올 수 있습니다.

쉬운 방법이 있나요?

보너스 포인트 : 나는이 패키지가 사이트 패키지에 설치되어 있고 파이썬과 함께 제공되지 않은 패키지를 가져 오지 않는 것이 좋습니다. 그러나 이것은 중요하지 않습니다. 난 단지 다음 stdlib에서 모든 모듈의 목록이 필요하고 나는 자동으로 다음과 같이, 그들 각각의 "수동으로"수입 파이썬 스크립트를 생성 할 수 있습니다 :

+1

무엇을 할 수 있습니까? 모든 것을 사전에 가져 와서 시작하는 셸을 작성하고 있습니까? 거기에 가능한 유스 케이스는 무엇입니까? 사용자가 "가져 오기"라는 12 개의 문자를 입력하여 저장 하시겠습니까? –

+1

사전 가져 오기가 없습니다. 하지만 사용자가 stdlib에서 항목을 가져올 수 있으려면 내 프로그램에서 가져 오기 (또는 가져 오는 것)해야하므로 py2exe에서 필 요할 것임을 알게되고 실행 파일로 패키지화합니다. –

답변

2

이봐, 난 그냥 뭔가 생각

import re 
import math 
import time 
# ... 

그런 다음 프로그램에 포함하십시오.

이제는 stdlib의 모든 모듈/패키지를 쉽게 형식화 한 목록이 필요합니다. 어떻게해야합니까?

UPDATE :이 같은 목록을 가지고

이 : 나는 가상 머신에 파이썬 2.6을 설치 한 후 IDLE에서 실행 : 그런 다음

import pkgutil 
stuff = [thing[1] for thing in pkgutil.iter_modules()] 
stuff.sort() # To make it easy to look through 
print(stuff) 

내 IDE에 출력을 붙여 복사 약간의 스크립트 작성 :

if False: 
    import re 
    import email 
    import time 
    # ... 

내 프로그램에서 가져온 Python 모듈에.

작동합니다! py2exe는 전체 stdlib을 압축합니다.

업데이트 :

나는이 작업을 수행하는 패키지를 만들었습니다. 여기에 업로드 것이지만, 내가 어떤 업로드 버튼이 표시되지 않기 때문에, 당신은 내 프로젝트 폴더 떨어져 그것을 얻을 수 있습니다 : 그것은 폴더 src에서, 패키지가 almostimportstdlib라고 그리고 그것을 문서화

http://github.com/cool-RR/PythonTurtle/tree/master

.

+0

http://docs.python.org/modindexHTML 그것은 당신에게 복사 및 붙여 넣기와 형식의 조금 걸릴 것입니다,하지만 내가 동적으로 개인적으로 생성 할 – fortran

+1

:-) 한 시간 작업입니다. 위에서 말한 내용을 살펴보십시오. 동일한 방법을 사용하여 모듈을 포함하고 파일을 생성하는 모듈 목록을 얻을 수 있습니다. 수동으로 하나를 유지 관리하는 것보다 낫습니다. – jkp

1

모든 Python 표준 라이브러리에서 zip 파일을 만든 다음 프로그램이 시작될 때 sys.path에 추가했습니다.

당신은 소스 here (중단 사업)에 대해 살펴

+0

브이 좋은 생각. 당신은 자원 사용 py2exe에로 번들 앱을로드 한 후 경로에 추가 할 수 있어야한다 : 당신이 적어도 pyInstaller 중에이 할 수있는 것을 알고있다. – jkp