0

これは小さなプロジェクトの提案です。
多くのユーザー定義のUNIXコマンドを作成し、Pythonで記述されたコードを使用してファイルに対してさまざまな操作を実行したいと思います。
例:extractinfo'filename' [このコマンドは、あるファイルに保存されているメタデータまたは一般情報を抽出します]

これが私が回避している方法です:
1。Pythonコードextract.pyがあるとします。
2.ここで、「独自のUNIXコマンド」(たとえば、「extractinfo」)を作成するために、「extractinfo」という名前のシェルスクリプトを記述します。

#/bin/bash
python /home/extract.py  

3.ここで、上記のシェルスクリプトを/ usr/binに配置します。そこで、別のシェルスクリプトを作成します--install.sh:

#!/bin/bash
chmod u+x extractinfo  
sudo cp extractinfo /usr/bin/  

4.これで、install.shを実行して、コマンド「extractinfo」を使用できます。

問題は、別のシステムを使用してinstall.shを実行すると、コマンド'extractinfo'が使用可能になりますが、ターミナルでコマンドを実行すると、エラー(python:ファイル'extract.py'を開けません:[Errno 2 ]そのようなファイルまたはディレクトリはスローされません)。

別のシステムを使用する必要がある場合に、元のPythonスクリプトのパスを処理するにはどうすればよいですか?

シェルとPythonをリンクしようとするのは、物事を行うための非常に大雑把な方法であることを私は知っています。この問題に関するヘルプ/提案をいただければ幸いです。

4

1 に答える 1

0

Pythonにシバンを直接使用しない理由はありますか?Pythonへのパスが一貫していないことが心配な場合は、おそらく/ usr / bin / env間接参照を使用しますか?

慣れていない場合は、 http://en.wikipedia.org/wiki/Shebang_%28Unix%29を参照してください。bashスクリプトが必要かどうかは私にはわかりません。Pythonスクリプトを/usr/ bin(または、おそらく/ usr / local / bin)に配置するだけです。

つまり、それが明確でない場合は、スクリプトの最初の行を次のいずれかにします。#!/ usr / bin / pythonまたは#!/ usr / bin / env python

于 2013-02-28T21:20:31.220 に答える