2011-03-24 74 views

回答

14

我知道這個問題有點老了,但它仍然是不夠有關,我一直在尋找的答案,所以我張貼了我發現的作品,以及:

至少在3.2.9+源,可以包括蟒蛇「初始化」文件,以獲得模塊的Python函數的版本:

>>> 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 

我曾被告知早期版本可以做到沒有.py擴展名,但這是第二手,所以ymmv。

+0

這更接近我們實際使用的東西(因爲對'modulecmd'的'popen'調用位於您引用的'python.py'文件中),所以我會將其設置爲答案。謝謝! – 2013-08-20 01:07:41

+0

我幾乎心臟病發作了!非常感謝你。 – yvesonline 2013-10-30 15:53:07

+4

在我使用的服務器中是/usr/share/Modules/init/python.py。我發現路徑正在運行模塊 - 版本(正確的條目似乎MODULES_INIT_DIR) – lib 2015-02-13 07:54:35

0

不是直接的,但根據您的環境,這裏有一種可能的解決方法。假設你可以用ENVVAR=value前言系統命令,你可以做一些沿着這些路線:

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

代碼分配你的EDITOR環境變量,然後通過在命令行上運行命令, (在這種情況下)是EDITOR。

3

一個我們的管理員能夠使用os.popen()電話來解決問題對我來說,modulecmd

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