LoginSignup
5
7

More than 3 years have passed since last update.

私版 Pythonスクリプト実行環境 構築方法

Last updated at Posted at 2019-05-28

0. はじめに

令和元年5月からお世話になっている、私の新しい職場は、VBAが大好きな集団だったのですが、徐々にPythonスクリプトを布教していこうと目論んでいます。

今回は、あなたのPCで、Pythonスクリプトが実行できるようにするには、何をすればいいのかを説明しようと思います。

前提条件

私のPCは、Windows 10 Pro 64ビット バージョン1809 です。Pythonスクリプトは、Mac、Linuxでも動作しますが、ここでは Windows の話に限定します。

1. Pythonのインストールに、Chocolateyを使う

Chocolateyは、Windows上のオープンソースアプリケーションを一括インストール&管理できるツールです。私流としては、Chocolatey経由でPythonをインストールします。Pythonの公式インストーラーを使えば一発で済むものを、なぜ話をややこしくするのかといえば、(1) バージョンがあがったときの更新がラクというのと、(2) 他にもインストールしてほしいアプリケーションがある、という2点の理由によります。

まずは、管理者として実行されたPowerShellを開くことから

  1. 画面左下のウィンドウズアイコンの右にある検索窓に powershell とタイプします
  2. 最も一致する検索結果に Windows PowerShell が登場しますので、右クリックします
  3. ショートカットメニューの中から「管理者として実行」をクリックします
  4. ウィンドウズが確認ダイアログを出すので「はい」と答えます
  5. 管理者として実行されたPowerShellが登場します

powershell.png

次に、Chocolateyのインストールスクリプトを実行する

  1. PowerShellはそのままに、ブラウザで https://chocolatey.org/ を開く
  2. トップメニューの Install をクリックする
  3. Installing Chocolatey > Install with PowerShell.exe > Now run the following command
  4. そこにある1行コマンドをコピーして、PowerShellに張り付けて実行する

chocolatey.png

最後に、Chocolateyがインストールされたことを確認する

  1. 実行したコマンドが終了したら、いったんPowerShellを閉じる
  2. もう一度、管理者としてとして実行されたPowerShellを開く
  3. chocoとタイプして、エラーが発生しなければ、Chocolateyは無事インストールされています

choco-command.png

Chocolateyでよく使うコマンド一覧

chocolateyを使うときは、常に「管理者として実行されたPowerShell」を使います

管理者として実行されたPowerShell

# パッケージをインストールする
choco install <package-name> -y

# パッケージをアンインストールする
choco uninstall <package-name> -y

# インストール済みパッケージの一覧を出す
choco list -lo

# インストール済みパッケージから更新可能なものを探す
choco outdated

# インストールしたパッケージを全てアップデートする
choco update all -y
  • -yオプションをつけると、実行直前に出る「本当に〇〇しますか?」という質問に、「はい」と答えたことになります。質問に答える必要がなくなります
  • -loオプションは、--local-onlyオプションと同じです。これを付け忘れると、インストール可能なパッケージをすべて表示しようとするので、大変なことになります

2. Chocolateyを使って、Pythonをインストールする

いったんChocolateyが使えるようになったら、Pythonのインストールは簡単です。「管理者として実行されたPowerShell」の中で、以下の一行を実行するだけです

管理者として実行されたPowerShell

choco install python -y

Pythonがインストールされたことを確認する

Pythonを動かすのに「管理者として実行されたPowerShell」は必要ありません。ふつうにPowerShellを起動して、以下のコマンドを叩いてみます。バージョン番号が返ってくれば、Pythonは無事インストールされています

ふつうのpowershell
python --version
pip --version

python.png

3. pipについて

pipは、Pythonで使うパッケージの管理ツールです。語弊を恐れずに言い切ってしまうならば、「Python専用のChocolatey」です。pipに「管理者として実行されたPowerShell」は必要ありません。ふつうにPowerShellを起動して使います

ここまで、あなたのPCでPythonスクリプトを動かす方法を、しっかりと説明しているのは、Pythonスクリプトを使うことで、いろんなことをラクにできるようにしようと思っているからです。いろんなことをできるようにするには、いろんなパッケージの追加が欠かせません。

pipでよく使うコマンド一覧

ふつうのpowershell
# パッケージをインストールする
pip install <package-name>

# パッケージをアンインストールする
pip uninstall <package-name> -y

# インストール済みパッケージの一覧を出す
pip freeze

# 必要なパッケージを一括インストールする
pip install -r requirements.txt

requirements.txtについて

このファイルにパッケージ名を書いておくと、一括でインストールすることができます。Pythonスクリプトを同僚に渡すときは、スクリプトファイルに加えて、そのスクリプトが使うパッケージ名を書いたrequirements.txtもつけるべきです。これで「パッケージがない!」というエラーに対処する必要がなくなります。

蛇足:インストール済みのパッケージをまとめて削除する

いろんなPythonスクリプトを動かしはじめると、インストールするパッケージがどんどん増えていくかもしれません。そんなときは、いったん綺麗にすることが可能です。

ふつうのpowershell
pip freeze > temp.txt
pip uninstall -r temp.txt -y
  • requirements.txtは、インストールするべきパッケージの一覧です。
  • pip freezeが吐き出すリストは、インストールされているパッケージの一覧です
  • pip freezeが吐き出すリストのほうが数が多くなるのは、依存関係の都合で一緒にインストールされたパッケージがあるからです
  • pip freezeが吐き出すリストを使うことで、確実にすべてのパッケージがアンインストールされます

蛇足の蛇足

あなたが開発者で、開発プロジェクトごとに、インストールされているパッケージを切り分けたいときは、venvというツールで、仮想環境を作成することになります。ここでは割愛します

4. あなたにあげる、便利なPythonスクリプトの例

このPythonスクリプトを実行すると、Chromeブラウザがヘッドレスで立ち上がって、楽天市場トップページのスクリーンショットを、同じフォルダに保存します。requirements.txtもつけてます

screenshot_rk.py
import datetime
import pytz
from selenium import webdriver
import time

print('作業を開始します。しばらくお待ちください')
t1 = time.time()

# 保存するファイル名を決める
now = datetime.datetime.now(pytz.timezone('Asia/Tokyo'))
path = f'{now.strftime("%Y%m%d-%H%M%S")}_rk_top_screenshot.png'

# ブラウザを設定する
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument("--hide-scrollbars")
driver = webdriver.Chrome(options=options)

# 楽天市場のトップページを開いて、スクリーンショットをファイルとして保存する
driver.get('https://www.rakuten.co.jp/')
page_width = 1280
page_height = driver.execute_script('return document.body.scrollHeight')
driver.set_window_size(page_width, page_height)
driver.save_screenshot(path)

# ブラウザを閉じる
driver.quit()

t2 = time.time()
elapsed_time = t2 - t1
print (f'作業が終わりました。{elapsed_time:0.2f}秒かかりました')
requirements.txt
pytz
selenium

このPythonスクリプトをもらった、あなたがやるべきこと

最初の例に選んだものの、Pythonスクリプトでブラウザを動かすのは、とても高度なことなので、Chocolateyでパッケージを追加する必要があります

管理者として実行されたPowerShell
choco install selenium-chrome-driver -y

そのあとは、説明してきた通りです

ふつうのpowershell
pip install -r requirements.txt
python screenshot_rk.py

screeshot_rk.png

5. 最後に

VBAは、Excelがインストールされていれば実行できるのに対して、Pythonスクリプトは、これだけの準備が必要となります。ですが、できることもたくさんたくさんあるので、食わず嫌いしないでいただけたらなと思います

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7