PyCharmで作ったプログラムをコマンドラインから実行
最近Pythonというプログラム言語をはじめて、PyCharmという統合環境上でずっと作業をしてたんですが、作ったプログラムを他のパソコンへもっていってコマンドラインから実行しようとしたのですが、
あれ?どうすんだ?といろいろ調べてやってみた忘備録。
0. Pythonのインストール
別のパソコンにはPythonが入ってないので、まずPythonをインストール
コマンドプロンプトから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 というディレクトリに置きました。
コマンドプロンプトを起動して、上のディレクトリに移動し、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の実行を終わった状態で、コマンドプロンプトが開くので、サンプログラムのテストを繰り返す時は便利です。
参考
コマンドプロンプト起動時にバッチファイルの設定を反映する方法
実際にやりたかったのは、MinerstatのAPIを使って、ワーカーが動いてるかチェックし、動いてなかったらパソコンを再起動というやつでしたが、そのプログラムを実行する前の準備作業で少し手間取ったので、その、忘備録でした。
この記事が気に入ったらサポートをしてみませんか?