2017-07-29 9 views
-1

私はディレクトリを変更するために中断することなく、私のためにいくつかのスクリプトを実行するbashスクリプトを書いています。私は別のディレクトリでスクリプトを呼び出す方法を考え出したが、あるスクリプト(a.py)が内部的に別のスクリプト(b.py)を呼び出すという問題を抱えている。 a.pyとb.py両方Bashスクリプトは、内部的に別のスクリプトを呼び出す別のディレクトリからスクリプトを実行していますか?

通常は、同じフォルダ内にあり、簡単に実行されている:

python a.py 

これはa.py実行すると正常に動作し、独自のディレクトリおよび出力内b.py見つけました働くしかし、私はbashスクリプトを実行するとうまくいきません。 EDIT:

#! /usr/bin/bash -x 
mkdir $2 
python ..\\get_coordinates.py 

cd $2 
python ..\\get_filenames.py 
var1=$(find *.fa) 

python ..\\a.py $var1 # Does something to files in var 

私はCMDで実行すると、次のとおりです:

>my_script.sh "coord1,coord2,coord3..." folderA 

すべてがb.py.を見つけられないように思われa.pyを呼び出すまで正常に動作しますこれは、これまでフルスクリプトがあります なぜa.pyでb.pyが見つかったのかわかりません。

編集:ここで私はa.pyになると私が得るエラーです。

python: can't open file 'b.py': [Errno 2] No such file or directory 
Count not run command: 
python b.py --output name.fasta name.fa 
find: ‘*.fasta’: No such file or directory 
+0

エラーが発生しましたか? 'ImportError'はおそらく? – nutmeg64

+1

ああ、そうです。私は主な質問をエラーで更新します。 – DNAngel

答えて

0

これはあなたのPYTHONPATH環境変数は、ここでの問題は、あなたのPYTHONPATHである

CD NewDir 
PYTHONPATH=/dir/of/second_script;/dir/of/first_script python /dir/of/first_script/first.py 
+0

しかし、私は最初のディレクトリに戻って欲しくないです。新しいディレクトリに移動された適切に識別されたファイルで動作できるように、NewDirの中でa.pyとb.pyを実行する必要があります。 – DNAngel

+0

edit私は推測する... –

+0

私は混乱しています、私は決してPYTHONPATHで働いていません。だから、私がbashスクリプトでpython a.pyを実行する前に、pythonpath行に完全なディレクトリ名を書きますか?単にpythonpath = .. \\ a.py; .. \\ b.pyを呼び出して、a.pyのpythonを呼び出しますか? – DNAngel

0

のためには何かということです。あなたにできることはPYTHONPATHa.pyのディレクトリを追加します

import os 
import sys 
runnig_dir = os.path.dirname(os.path.abspath(__file__)) 
sys.path.insert(0, runnig_dir) 

これ(ファイルの先頭で)a.pyファイルにこれらの行を追加し、どこからでもb.pyを実行しても正常に動作する必要があります。

+0

私はそれを試みた、私は同じエラーが発生します。ファイル "b.py"を開くことができないと言っています:[Errno 2]そのようなファイルやディレクトリはありません – DNAngel

+0

私はa.pyを呼び出す必要があるので、それはb.pyを呼び出します)。 – DNAngel

0

私はここで非常に明白な何かを逃しました。私はメインスクリプト(a.pyとb.py)を作成するのに助けがあったので、b.pyの中に深い引数パーサがあることに気付きました.b.py

私のbashスクリプト、私は行を次のように変更しました:

python ..\\a.py -p ..\\b.py $var 

これで動作します。しかし、もし誰かが、引数引数が使われなかった場合にb.pyを呼び出す方法を考えてもらえると助けになるでしょう。

関連する問題