2011-03-24 1 views

답변

14

내가 옛날의이 질문의 종류 알고 있지만 그것이 내가 그렇게 대답을 찾는 것을 여전히 충분히 관련이 나는뿐만 아니라 작품을 찾았는지 게시하도록하겠습니다 :

>>> execfile('/usr/local/Modules/default/init/python.py') 
>>> module('list') 
No Modulefiles Currently Loaded. 
>>> module('load','foo') 
>>> module('list') 
Currently Loaded Modulefiles: 
    1) foo/1.0 
01 :

적어도 3.2.9+ 소스에서, 당신은 파이썬을 포함 할 수 있습니다 파일 모듈의 파이썬 기능 버전을 얻을 "초기화하기"

나는 이전 버전이 .py 확장자 없이는 똑같이 할 수 있다고 들었다.

+0

이것은 우리가 실제로 사용하는 것과 매우 가깝습니다. ('popen'을 호출 한'modulecmd'는 당신이 인용 한'python.py' 파일에 있습니다.) 그래서 이것을 대답으로 설정할 것입니다. 감사! –

+0

나는 이것을 거의 알아내는 심장 마비를 가지고 있었다! 고맙습니다. – yvesonline

+4

사용중인 서버에서 /usr/share/Modules/init/python.py에 있습니다. 경로가 모듈 --version (정확한 입력이 MODULES_INIT_DIR 인 것 같습니다)을 찾았습니다. – lib

0

환경에 따라 직접 해결할 수 없지만 해결 방법은 하나 있습니다. 당신이 ENVVAR=value로 시스템 명령을 서문 할 수 있습니다 가정하면,이 라인을 따라 뭔가를 할 수 있습니다

import os 
os.environ['EDITOR'] = 'vi' 
cmd = "EDITOR=%(EDITOR)s $EDITOR" % os.environ 
os.system(cmd) 

코드는 사용자의 EDITOR 환경 변수에 VI을 할당 한 다음 명령 줄에 전달하고 명령을 실행하는 (이 경우) EDITOR입니다. 우리의 관리자의

3

하나는 modulecmdos.popen() 호출을 사용하여 나를 위해 문제를 해결할 수 있었다 :

cmd = os.popen('/path/to/modulecmd python load my-module') 
exec(cmd)