2017-10-18 3 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コマンドへの依存性を考慮して、このモジュールをインポートする方法を教えてください。 Pythonのパスを更新する

+1

あなたがこのモジュールへのパスを設定しているように見えます。あなたはvirtualenvの使用についてどう思いますか?私はそれがあなたの問題を解決すべきだと思います。 – Mariusz

+0

'.profile'スクリプトの目的は何ですか? –

+0

.profileには環境変数とエクスポート文がありますが、それもうまくいきません。 – npatel

答えて

1

、あなたはこのようなsys.pathIX_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

関連する問題