파이썬 스크립트를로드하여 사용하는 방법이 있습니까? environment modules? os.system('module load xxx')
은 하위 쉘에서 실행되기 때문에 작동하지 않습니다 (적어도, 나는 그렇게 생각합니다).파이썬 스크립트 내에서 환경 모듈로드하기
14
A
답변
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
환경에 따라 직접 해결할 수 없지만 해결 방법은 하나 있습니다. 당신이 ENVVAR=value
로 시스템 명령을 서문 할 수 있습니다 가정하면,이 라인을 따라 뭔가를 할 수 있습니다
import os
os.environ['EDITOR'] = 'vi'
cmd = "EDITOR=%(EDITOR)s $EDITOR" % os.environ
os.system(cmd)
코드는 사용자의 EDITOR 환경 변수에 VI을 할당 한 다음 명령 줄에 전달하고 명령을 실행하는 (이 경우) EDITOR입니다. 우리의 관리자의
3
하나는 modulecmd
에 os.popen()
호출을 사용하여 나를 위해 문제를 해결할 수 있었다 :
cmd = os.popen('/path/to/modulecmd python load my-module')
exec(cmd)
이것은 우리가 실제로 사용하는 것과 매우 가깝습니다. ('popen'을 호출 한'modulecmd'는 당신이 인용 한'python.py' 파일에 있습니다.) 그래서 이것을 대답으로 설정할 것입니다. 감사! –
나는 이것을 거의 알아내는 심장 마비를 가지고 있었다! 고맙습니다. – yvesonline
사용중인 서버에서 /usr/share/Modules/init/python.py에 있습니다. 경로가 모듈 --version (정확한 입력이 MODULES_INIT_DIR 인 것 같습니다)을 찾았습니다. – lib