2017-10-18 56 views
0

在導入模塊之前,我依賴於2 bash命令。 當我在bash下面執行2條命令然後進入python時,我能夠導入模塊而沒有任何錯誤。如何在python腳本中執行依賴bash命令後導入ixiatcl模塊

-bash-4.2$ source /root/.profile 
-bash-4.2$ export PYTHONPATH=$IX_PY:$PYTHONPATH 
-bash-4.2$ python 
Python 2.7.5 (default, Nov 3 2016, 22:05:29) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from ixiatcl import IxiaTcl 
>>> 

但是,當我試圖保持準確上述我的劇本的事情,這是行不通的:

#!/usr/bin/python 
print commands.getoutput("source /root/ixia/.profile") 
print commands.getoutput("export PYTHONPATH=$IX_PY:$PYTHONPATH") 
from ixiatcl import IxiaTcl 

我收到此錯誤:

ImportError: No module named ixiatcl 

可有人請建議我考慮依賴腳本中的2 bash命令來導入此模塊?

+1

看起來你已經設置了這個模塊路徑。你對使用virtualenv有什麼看法?我認爲它應該可以解決你的問題。 – Mariusz

+0

這裏'.profile'腳本的目的是什麼? –

+0

.profile有一些環境變量和導出語句,但看起來像採購,也不會工作? – npatel

回答

1

要更新Python路徑,你可以在sys.path這樣插入IX_PY環境變量的值:

import sys 
import os 

IX_PY = os.environ['IX_PY'] 
sys.path.insert(0, IX_PY) 

from ixiatcl import IxiaTcl 
+0

即使以這種方式設置所有的環境變量,我不能導入模塊,如果我用'pexpect.spawn'進入'python',我能夠導入但不在'python'之外,不知道還有什麼東西丟失。 – npatel

+0

你的'.profile'激活一個virtualenv或者改變你的Python路徑。要調用這個腳本,你需要通過給出Python可執行文件的完整路徑來使用正確的Python可執行文件。 –

+0

我確實需要更改'PYTHONPATH'才能導入模塊。你能不能讓我知道我究竟能如何來源? – npatel