PyCharmで作ったプログラムをコマンドラインから実行

最近Pythonというプログラム言語をはじめて、PyCharmという統合環境上でずっと作業をしてたんですが、作ったプログラムを他のパソコンへもっていってコマンドラインから実行しようとしたのですが、

あれ?どうすんだ?といろいろ調べてやってみた忘備録。

0. Pythonのインストール

別のパソコンにはPythonが入ってないので、まずPythonをインストール

https://www.python.org

コマンドプロンプトからPythonのプログラムを実行するときは、インストールしたpython.exeが入っているディレクトリへPATHを通します。デフォルトだと以下の場所。インストール時にパスを通すのオプションもありましたが。

PATHの例

set PATH=C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39;%PATH%

動作確認に以下のような簡単なpythonファイルを作成し実行してみました。関数にしなくてもいいんですけど、なんとなく。

サンプルプログラム hello.py

def proc():
   print("hello")

if __name__ == '__main__':
   proc()

hello.py を C:\data\mining\cryptProject というディレクトリに置きました。

画像1

コマンドプロンプトを起動して、上のディレクトリに移動し、python.exeへPATHを通し、プログラムの実行(python hello.py)すると、helloと表示され、プログラムが実行できました。

Microsoft Windows [Version 10.0.19042.1237]
(c) Microsoft Corporation. All rights reserved.
C:\Users\ore>cd C:\data\mining\cryptProject
C:\data\mining\cryptProject>set PATH=C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39;%PATH%
C:\data\mining\cryptProject>python hello.py
hello

1. 必要なパッケージのインストール

外部パッケージを利用するプログラムの場合、そのパッケージをインストールしPYTHONPATHを通す必要があります。

今回はrequestsとbeautifulsoup4を使っているのでそれぞれインストールしました。インストールはpipを使いますが、windowsの場合は py -m を pip install の前につけるらしいです。

py -m pip install requests
py -m pip install beautifulsoup4

プログラムを実行前に、このpipでインストールした追加パッケージへPYTHONPATHを通します。デフォルトで以下の場所です。

PYTHONPATHの例

set PYTHONPATH=C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39\Lib\site-packages

参考 

https://note.nkmk.me/python-import-module-search-path/

動作確認にrequestsパッケージを利用した簡単なpythonファイルを作成し実行してみました。GETリクエストを一回実行するだけの簡単なプログラムです。

hello2.py

import requests

def proc():
   response = requests.get("https://www.yahoo.co.jp/")
   print(response.headers)

if __name__ == '__main__':
   proc()
   print("end")

コマンドプロンプトを起動し、hello2.pyを実行します。上のhello.pyのときと異なるのは、PYTHONPATH環境変数をセットしているところです※1。(赤字強調とかnote.comだとどうやるんだろ・・・)

Microsoft Windows [Version 10.0.19042.1237]
(c) Microsoft Corporation. All rights reserved.
C:\Users\ore>cd C:\data\mining\cryptProject
C:\data\mining\cryptProject>set PATH=C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39;%PATH%

C:\data\mining\cryptProject>set PYTHONPATH=C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39\Lib\site-packages
↑※1 この部分

C:\data\mining\cryptProject>python hello2.py
{'Accept-Ranges': 'none', 'Cache-Control':... (実行結果)
​

もうちょっと複雑なプログラム群の場合は、何かPyCharmの環境をそのままエクスポートする方法みたいなのが多分あると思うのですが、外部パッケージを1つ2つ利用するぐらいの超簡単なプログラムの場合は、こんな感じで手動で設定できました。

2. その他

私は上のPATHとPYTHONPATH環境変数を設定するsetenv.batというファイルを作りました。

setenv.bat

set PATH=C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39;%PATH%
set PYTHONPATH=C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39\Lib\site-packages

コマンドプロンプトファイルのショートカットをコピーして、プロパティーで、リンク先と作業フォルダーを指定すると、cd(ディレクトリ移動)とsetenv.batの実行を終わった状態で、コマンドプロンプトが開くので、サンプログラムのテストを繰り返す時は便利です。

画像2

参考

コマンドプロンプト起動時にバッチファイルの設定を反映する方法


実際にやりたかったのは、MinerstatのAPIを使って、ワーカーが動いてるかチェックし、動いてなかったらパソコンを再起動というやつでしたが、そのプログラムを実行する前の準備作業で少し手間取ったので、その、忘備録でした。

この記事が気に入ったらサポートをしてみませんか?