web-dev-qa-db-ja.com

フルパスを書かずにコンソールからpythonスクリプトを実行する方法は?

私はいくつかのpython/usr/share/scripts /上のスクリプトを使用していますが、フルパスではなく名前を書き込むだけで実行できるようにしたいのですが、どうすればよいでしょうか。私はこれをします?

echo $ PATHは私を示しています:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer

だから私はターミナルで書いてみました:

PATH="/usr/share/scripts/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer"
export

エラーは表示されず、エコー$ PATHに新しいスクリプトパスが表示されますが、scriptNameを実行すると、コマンドが見つかりません。

何が悪いのですか?

8
grerdas

pythonスクリプトの実行可能権限を「chmod + x *」で設定します
2つのオプションがあります。

  • スクリプトディレクトリをPATH環境変数に追加する、または
  • /usr/local/binディレクトリにスクリプトへのシンボリックリンクを1つずつ作成します(または、同じことを行う別のスクリプトを記述します)。

例:
[mzed@node02 test]$ vim printme.py

ファイルの内容:

#!/usr/bin/python
print "This is cool!"

-

[mzed@node02 test]$ mv printme.py printme
[mzed@node02 test]$ chmod +x printme
[mzed@node02 ~]$ cd /usr/local/bin/
[mzed@node02 bin]$ Sudo ln -s ~/test/printme .
[mzed@node02 bin]$ ls
deskzilla  grails  grails-debug  printme  startGrails
[mzed@node02 bin]$ cd
[mzed@node02 ~]$ printme 
This is cool!
[mzed@node02 ~]$

これがお役に立てば幸いです。

9
mj.scintilla

よし、たぶん私はもっと年上の学校だ...
/usr/binに、#!/ bin/bashヘッダーがあり、.sh拡張子のないシェルスクリプトを追加します。次に、これらのスクリプトでpython absolutepathを実行します。

他の回答よりも優れていると思う理由:
スクリプトをchmodして実行可能にする必要はありません。
スクリプトの名前を変更する必要はありません。

1
RobotHumans

基本的なことを提案してすみません。「scriptname」だけでなく「scriptname.py」を試してみましたか?

また、すべてのスクリプトには実行権限が必要です(「chmod + x script.py」を発行して実行できます)。上記のコメントから判断すると、「/ usr/share/scripts/scriptName。 py args」、実行権限が必要です。

0
Vinay