• ベストアンサー

プログラム初心者です。unix上でのpythonについて

まだプログラム初心者な上に、unix上でpythonを扱うことになりまして、わからないことができたので質問させてもらいます。 unix上でpythonを実行させるときは、普段 python スクリプト名.py でRETURNを押せばできるがこれをpythonを省略して、スクリプト名.pyだけで実行できるようにするにはどうせればいいか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.6

>これ以上の省略はできないということなんですか? 普通は、自分の作ったコマンドは、自分のホームディレクトリの下に bin という名前のディレクトリを作って、そこに格納します。 おそらく、$PATH に $HOME/bin が含まれていると思いますので、 cd ~ mkdir bin mv csv.py bin で、 csv.py で実行できます。Windowsと違って、実行ファイルの拡張子に意味はないので、なくてもかまいません。つまり、csv.py を csv にリネームすれば、 csv で実行できます。 もし、上記でだめなら、$PATH に $HOME/bin が含まれていないので、.bash_profile に、下記を追加してください。 PATH=$PATH:$HOME/bin

yxia001
質問者

補足

すいません、初心者なのでつまらない質問させてもらいますが、.bash_profileって何ですか?

その他の回答 (5)

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.5

またも多重投稿すいません。 あと、自分の作った実行ファイルを、すでにPATHが通っている場所にコピーするという手もありますが、共用していないUNIXマシン以外ではおすすめできません。

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.4

> これ以上の省略はできないということなんですか? UNIXでもWindows(DOS:ここで内部コマンドは例外とします)でもコンソールから命令を入力した場合、その名称の実行ファイル(プログラム)が存在しない場合、当たり前ですが実行できないので実行不可エラーとなります。 この実行ファイルを探す場所をシステムは「pathという名称の環境変数」に記述しています。setコマンドでpathの内容を見るとディレクトリのリストが特定の記号で区切られてセットされていると思います。 Windows(DOS)環境の場合は、カレントディレクトリ→pathの順に目的のファイルを探しますが、Unix系だとpathのみが検索対象となってしまいます。 よって、UNIX上では自前のコマンド(プログラム)を実行したいなら、パスをコマンドの前に付けるか、環境変数pathにそのファイルのある場所を明示的に登録しなければいけません。

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.3

多重回答申し訳ありません。 パーミッションの実行権限も忘れないようにしてください。

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.2

その「csv.py」というファイルですが、カレントディレクトリ上ということで直に「csv.py」と入力していませんか? Windowsの場合は実行ファイルをカレント→パスの順で探してくれますがLinux系で探してくれるのはパス指定のもののみなので、カレントでどうにかしたいなら「./csv.py」とパス指定してやる必要があります。

yxia001
質問者

補足

そうなんですか。操作は自分のホームディレクトリにcsv.pyをおいてそこでしています。一応、./csvでは実行できました。ということは、これ以上の省略はできないということなんですか?

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

スクリプト一般で使える方法ですが、スクリプトの先頭行に #!/usr/bin/python と書けば、Pythonのパスが/usr/bin/pythonであれば実行できるかと。 あるいは #!/usr/bin/env python と書けば、pythonにパスが通っていれば実行できるかと思います。 # 参考 http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%90%E3%83%B3_(Unix)

参考URL:
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%90%E3%83%B3_(Unix)
yxia001
質問者

補足

pythonは/usr/bin/pythonにあるので #!/usr/bin/pythonという シェバング行は入れたんですが動かないんです。 パスについてもいまいちわかってないので調べてみます。 ちなみにこんな感じのエラーが出たんです。 -bash: csv.py: command not found