2010-11-23 10 views
0

〜/ programming/ass1にあり、実行可能ファイルが〜/ programming/ass1/seattle/seattle_repy/repy.pyにあるとします。 「私が取得( プログラムへのシンボリックリンクの作成

は私が

python repy restrictions.test example.1.1.repy 

代わりの

python seattle/seattle_repy/repy.py restrictions.test example.1.1.repy 

入力できるようにするので、

ln -s seattle/seattle_repy/repy.py repy 

のようなシンボリックリンクを作成しようとしました。しかし、それは動作しませんでしたpython: '/ home/philipp/Desktop/Uni/NTM/UE/Uebungsblatt 3/safe_check.py':[Errno 2]というファイルやディレクトリは開けません。 したがって、repy.pyはsafe_check.pyを見つけることができません。

これはまったく可能ですか?

乾杯、 フィリップ

+0

これはsafe_check.pyですか、どのように呼び出すのですか – Mark

+0

これはseattle/seattle_repy /にもあり、repy.pyによって呼び出されています。 –

答えて

1

あなたはモジュールを含むパスを追加するsys.pathをFROBする必要がありますが、それはexec python ~/programming/ass1/seattle/seattle_repy/repy.pyを呼び出すシェルスクリプトを作成する方が簡単でしょう。

+0

チップをありがとう。 〜/ programming/ass1/repy.shのbashスクリプトで解決しました。

 #!/bin/bash exec python ~/programming/ass1/seattle/seattle_repy/repy.py $1 $2 

0

IgnacioとMarkのヒントをありがとう。 私は最終的に私は私が、/ usr/binにそれをコピーし、それへのシンボリックリンクを作成したいものを得るために〜/プログラミング/ ASS1

 
#!/bin/bash 
exec python ~/programming/ass1/seattle/seattle_repy/repy.py [email protected] 

で、次のbashスクリプトでそれを解決:

sudo cp repy.sh /usr/bin/ 
sudo ln -s /usr/bin/repy.sh /usr/bin/repy 

だから私はちょうどrepy restrictions.test example.2.1.repyと言うことができ、それは動作します。

+0

パラメータを引用する必要があります。あるいは、より良いことに、すべてのパラメータを渡す '' $ @ ''を使用してください。 –

+1

'$ @'ではなく '' $ @ ''です。これらの引用符は、空白を含む引数が分割されないようにするため重要です。 –

+0

一般的には、 '/ usr/bin'と'/bin'をシステムに残して、そこに物事をインストールしないようにしてください。アップグレードを容易にすることがよくあります。他の人がそれを使いたいかどうかに応じて、 '/ usr/local/bin'や' $ HOME/bin'を使うこともできます。 –

関連する問題