コマンドの他のファイルはどこに配置する必要がありますか?

コマンドの他のファイルはどこに配置する必要がありますか?

Pythonでスクリプトを作成し、実行可能にします/usr/local/bin/。しかし、コマンドに関連する他の多くのファイルがありますが、どこに入れるべきですか?入れてみましたが、うまくいき/usr/local/ませんでした。

from: can't read /var/mail/lib.arguments
from: can't read /var/mail/lib.shot
from: can't read /var/mail/gui.main
/usr/local/bin/shot: 6: Syntax error: "(" unexpected

このエラーは奇妙なようです。/var/mail/

また、プロジェクト全体を/usr/local/ファイルに移動し、シンボリックリンクを作成してmainから、シンボリックリンクを/usr/local/bin/ディレクトリに移動してみました。

ln -s main /usr/local/bin

ところで、私はUbuntuを使っています。

修正する:

からに変更しましたshebang。私のプロジェクトディレクトリに移動し、ファイルをコピーして名前を 。#!/bin/sh#!/usr/bin/python3main.pymain/usr/local/bin


私の問題は、ファイル名が灰色の背景に赤で、コマンドを呼び出せないことです。

答え1

確認してくださいman ln

ln -s main /usr/local/bin/yourscript

リンクのディレクトリ名を指定しないでください/usr/local/bin。必要なディレクトリにファイル名を指定します。スクリプトをバイナリディレクトリに配置することに注意してください。あまりきれいではありません。

編集:Pythonはディレクトリに何を置くかについて少し変かもしれませんbin。ほとんどのコンテンツは実際にはバイナリでもなく、バイナリへのリンクでもありません。通常はそれ自体がインポートする小さなPythonスクリプトです。その一部を確認してください。たとえば、pydoc次の内容を入力します/usr/bin/pydoc

1   #!/usr/bin/python3.8
  1
  2 import pydoc
  3 if __name__ == '__main__':
  4     pydoc.cli()

bin単にPythonスクリプトを実行したい場合は、そのスクリプトをディレクトリに配置する必要はありません。

  • 他のプログラムから呼び出すには、PATHそのプログラムがあるディレクトリに展開するだけです。そしてPATH=$PATH:/MY/PATH。一部のプログラムは独自のパス変数を使用します。ぜひご確認くださいenvironmental variables。 Pythonの場合は確認してください。ここ、PythonがPYTHONPATH
  • bash1つだけ定義できますalias=myscript

関連情報