Python 3では、既存のコマンドラインツール用のコマンドラインラッパーを作成しようとしていますが、spooky
いくつかの奇妙な動作を理解するのに問題があります。コマンドラインにspookyと入力すると、spookyのマニュアルページが表示されます。/path/to/spooky
コマンドラインにspookyツール()パスを入力すると、spookyのマニュアルページも表示されます。
パスにspookyを入れて必須パラメータを入力すると、spookyプログラムを正常に実行できます。
$ spooky -a 50 -b .97
ただし、パスにspookyを入れずに次のコマンドを入力すると、実行されません。
$ /path/to/spooky -a 50 -b .97
プログラムパスと必須パラメータを入力しましたが、なぜプログラムが実行されないのですか?
答え1
あなたの質問では、「spooky」は既存のコマンドを意味しますか、それとも自分で書いたPython 3ラッパーを意味しますか?
そして、コマンドラインにspookyと入力すると、マニュアルページが表示されると言いました。そうですか?マニュアルページを呼び出すのは「man spooky」ではなく、「spooky」そのものですか?
次に追加:
あなたが言ったように、「spooky」コマンドは、呼び出される名前を含む独自の引数をチェックし、その名前がフルパス名で実行されたときに発生する「spooky」ではないかどうか不平を言うようです。
簡単な解決策は、ラッパーで「ゴースト」モードでコマンドを実行し、そのコマンドがパスにあることを確認することです。
答え2
「実行されません」以外のエラーメッセージは非常に役立ちます。
しかし、追加してみてください。
#!/usb/bin/python
(または #!/usb/bin/python3.2 またはシステムで使用される Python インタプリタ) を Python スクリプトの最初の行として指定します。
また、unix chmod コマンドを使用してファイルを実行可能としてマークします。
chmod u+x /path/to/spooky
答え3
「spooky」が引数を正しく解析できないように聞こえます(理由と方法はspookyが書かれた言語によって異なります)。
簡単な解決策はを使用することですos.chdir
。