.pyスクリプトの実行、シバン行、バッチ

投稿者: | 2022-03-19

目次

.pyスクリプトの実行方法

  • pyファイルの実行はコマンドライン(コマンドプロンプトやターミナル)から実行する
  • pathが通っているかによって異なるが、以下のいずれかで実行可能
  • 基本、pathは通っているはず(通ってない場合はココを参照)
  • コマンドラインにドラッグ&ドロップすればPATHがペーストできる
>>>python test.py          <- python.exe、pyファイルまでPATHが通っていた場合
>>>python FullPath¥test.py

>>>FullPath¥python test.py
>>>FullPath¥python FullPath¥test.py 

# コマンドライン引数
>>>python test.py 引数1 引数2 ← sys.argvで取り出す

# Jupyterの場合
>>>%run -i test.py

Pythonランチャー(py.exe)

  • Windowsのみだが、Pythonランチャー「py.exe」が使える
  • 通常、Pythonをコマンドラインから実行するときは、Pythonをインストールしたディレクトリを環境変数に登録しておかなければならない。py」はそれなしで実行できる
  • >>> py 〜.py で実行可能
  • Anacondaなどのディストリビューションにはpy.exeはない
C:\Users\testuser1>py
Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+1
2

バッチファイル(.bat)

  • Pythonスクリプトを簡単に実行するには、py.exeでスクリプトを実行するバッチファイル(.bat)を作る
  • メモ帳を使い、バッチファイルには次の1行を書く
  • このバッチを使えば、スクリプトの絶対パスを毎回指定しなくてよい
  • バッチファイルと.pyファイルをMyScriptsなど1つのフォルダに保存しておき、環境変数PATHにそのフォルダを追加しておけばWin+Rから「〜.bat」だけ(Notフルパス)を叩けばすぐに実行できる
  • バッチファイルや.pyファイルは環境変数PATHにパスが通っているフォルダ(ホームフォルダなど)に置いておけば、Win+R→バッチファイルを入力しEnterすれば実行できる
  • batをWクリックでもOK
~.batファイル

@py.exe C:¥~~~¥test.py %*  <- 絶対パス、%*は引数をさす
@pause  <- ウィンドウがすぐに消えない。 Press any key to continue...が表示される

Macの場合

  • .command のテキストファイルを作成する(シェルスクリプト)
  • ターミナルより chmod u+x yourScript.command を実行し、権限付与する
  • Spotlightより、yourScriptで実行(シェルスクリプトはPythonスクリプトを実行する)
#!/usr/bin/env bash
python3 /path/to/yourScript.py

python.exeのインストール場所

  • sys.exec_prefix
  • sys.executable
  • sys.path ←古い?
  • Windwosでは「Where python」でもいける?
>>> import sys
>>> sys.exec_prefix
'C:¥¥Users¥¥Ichiro¥¥AppData¥¥Local¥¥Programs¥¥Python¥¥Python37-32'
>>> sys.executable
'C:¥¥Users¥¥Ichiro¥¥AppData¥¥Local¥¥Programs¥¥Python¥¥Python37-32¥¥python.exe'

シバン行で直接実行する

cf. シバンはモジュールを実装するときには不要(書く意味がない)

  • スクリプトの先頭行のシバンを使って、pythonを直接実行する方法
通常だと
>>> python <ソース名>.py
  • シバン行を使うと、コマンドラインからソースを直接指定してpythonスクリプトを実行可能となる
>>> <ソース名>.py
  • シバン行の書き方
  • <pythonが存在するディレクトリ>/python3、と記載すればよい
  • そうすれば、コマンドラインから直接上記のように叩けば実行可能
例)
Windows
#! python3

Mac
#! /usr/bin/env python3

Linux
#! /usr/bin/python3

exeファイルの作り方

  • Pyinstaller(ライブラリ)を利用

自動スケジュール