コマンドラインをつかわないでPython実行環境を用意する試み feat. PyCharm
こんにちは!プログラミング1か月目(執筆時)のAKANEと申します。みなさんBOTトレード楽しんでいますか?
最近、暗号通貨のBOTトレードがちょっとしたブームですね。noteやウェブ上のさまざまな情報から興味を持たれた方は多いことかと思います。私もそんな流行りにつられてやってきたひとりなのですが、最初はBOTを入手するも、それを動かすための環境構築には大変苦労しました。そこで今日はPythonで記述された※スクリプトを運用する際の、特に環境構築をなんとかできないかと思い書いてみることにしました。
はじめに、Pythonで記述されたスクリプトを実行するためには、AWS(アマゾンのウェブサービス群)が提供する「Cloud9」と呼ばれる環境を利用することが一般的となっています。その環境構築の方法については、おのおの入手されたスクリプト付属のnoteなどで、使用方法とともに詳しく書かれていることでしょう。ですから乱暴な言い方をしますと「その説明のとおり上から下までやれば環境構築できる」はずです。身も蓋もないですがこれが真理なのです…どうかお取り違えなさらないようにお願いします。
しかしながらそのことが大きな参入障壁となっているのも確かです。私にとってはそうでした。「コマンドラインに呪文をコピペ!」「ファイル作成はコマンドラインで直接!」「権限付与するよ755!」「PIP!PIP!PIP!」「sudo!(須藤さん?)」…などと、ひと時のハッカー気分に酔いしれつつも終始キーボードカタカタで、一体何をやっているのかもわからず大変苦労したことを覚えています。きっとこの「※コマンドライン」という存在の重要性やありがたみを理解するのは、ずいぶんと先のお話でしょう。
※スクリプト ≒ (プログラム, BOT)
※コマンドライン ≒ (CUI, ターミナル, コンソール, シェル, bash などなど)
ここではどれも同じようなものと思ってください。以降「スクリプト」「コマンドライン」と表現します。
■コマンドラインという存在をいったん忘れよう
前置きが長くなりました。本noteの主題はいずれかで入手されたPythonのスクリプトを、コマンドラインという挫折ポイントを経由せずに実行まで持っていくことです。キーボードは極力使わず、直感的でラク~なBOT体験を目的としましょう。当然、あちこちで紹介されるている手順と比較して邪道ですし、応用が利かないこともあるかもです。それでもよろしければお付き合いください!
なお、本noteではコンピュータ上に環境を構築することになるため、BOT運用中は電源つけっぱになります。できれば別途ローコストなコンピュータ(電気代的な意味で)を用意しましょう。選択肢は多いです。AWSやサーバを借りるよりは長い目で見れば安くなることもあります。
■準備
最初に必要なものを集めましょう。これはもう…がんばってください(笑)
・コンピュータ
Windows10環境を想定しています。
・お使いになりたいPythonスクリプト
・Anaconda (Python本体のようなもの)
https://www.anaconda.com/download/
お使いのOSに合った Python 3.7 version 以降を選択してください。
・PyCharm (コードを編集、実行するもの)
https://www.jetbrains.com/pycharm/download/
Community エディション(無償)を選択してください。
メールアドレスの登録を求められることがありますが無視でよいです。
■環境構築
AnacondaおよびPyCharmを普段のアプリケーションのようにインストールしてください。
ポイントですが、必ず先にAnacondaをインストールすることと、最初から入力されているCheck項目などは変更せず、できるだけニュートラルな状態でインストールしてください。
両方ともインストールできましたでしょうか?おつかれさまでした。もうAnacondaは使いませんので忘れていただいて結構です(爆)
インストールができましたら、PyCharmを起動しましょう。初回起動時のみちょっとした儀式を行います。
まずは「新規プロジェクトの作成」を求められます。
プロジェクトの保存先を聞かれますが、スクリプトの出し入れを考えますと、
C:\Coding\PycharmProjects\Trade
などがたどり着きやすく便利でしょうか。こだわりがなければコピペしてください。以降「Trade」というプロジェクト名を想定します。※環境によって上記パス(場所)の区切りが ¥や\になることがあります。
この画面のまま、先にインストールしたAnacondaと連携します。下の画像のとおりに進めます。途中で別画面が開きますので2枚目の画像のとおり進めてください。その他の項目は触らなくても結構かと思います。最後の[OK]で別画面が閉じますので、元の画面に戻ったら[Create]を押します。
[Create]からしばらくは環境構築のためコンピュータがブイ〜ンとなると思いますので、ストロングゼロでも飲みながらながめていましょう。画面下側には進捗が表示されているかと思います。
■実際に使ってみる
実はこれでほぼ完了です。コピペだけなど、うまいことこれてますとキーボードはまだ使用していないかもしれません。
実際に使いたいスクリプト(拡張子.py)をPyCharmに追加します。3とおりの簡単なパターンが考えられます。おすすめは①③です。
①左の一覧のようなところで「▼Trade」を一度クリックして色を付けて、右クリックから、New → PythonFile を選び、好きなファイル名を付けて[OK]します。できた新スクリプトにコードをコピペします。
②「▼Trade」に入手したスクリプトをPyCharmの外からポイッとドラッグ&ドロップしてやります。メッセージ画面が出ることがありますが[OK]でよいです。
③プロジェクト作成時に指定したWindowsフォルダの場所がおわかりでしたら、そこへ行って直接ポイッとやるのもよいです。'\Trade' 配下にポイッです。これが一番簡単かつ間違いがないかと。
上記手順で作成/追加したスクリプトを確認/編集したいときは、左の一覧で対象のスクリプトをダブルクリックします。スクリプトの目的によっては API Key/Pass などを追記する必要があるかもしれません。詳しくはスクリプト入手元の説明を確認しましょう。確認/編集が終わりましたら、そのコード編集画面の上側で、スクリプト名の横にある[×]で閉じます。オートセーブですので閉じるだけでOKです。
いよいよ実行です。左の一覧で対象のスクリプトを右クリックから、Run 'スクリプト名' で実行できます。そうしますと下側に実行画面が現れたかと思いますので確認しましょう。
おそらくこの時点ではエラーであったり、「モジュール 'xxxx' がないよ!」という旨の英文メッセージとともに停止してしまっていることかと思います。これについては後述します。
実行画面の左側には[■]停止や[×]閉じるボタンなどがありユーザフレンドリーですね。再実行も[緑三角]からできます。このように直感的に操作できるところが私のお気に入りポイントです。
また、PyCharmの実行画面は複数の実行を並列管理することができます。運用したいスクリプトが増えた際も、まずは何も考えずに複数の実行をしてみてください。すぐに仕組みがわかると思います。
■スクリプトによって求められる追加作業
まだここまでキーボードの出番がない方もいるかもしれません。無理をして避けているわけではないのですが。
さて、ここからが本noteのキモです。
スクリプトで実現したい内容によっては、「モジュール」なるものを追加する必要がでてきます。ノーマルなPythonではできない機能を追加してやるんですね。ウェブブラウザでいうプラグインみたいなものです。ここを見られる方は「ccxt」「pybitflyer」「json」「pandas」などが多いでしょうか。
コマンドラインの場合は環境構築もそうですが、このモジュール追加やスクリプトの権限付与(本noteでは不要)などがそびえ立つ鬼門として、あちらこちらで質問が紛糾噴出しまくっています。では、参りましょう。
スクリプト入手元の説明やスクリプト内を実際に見て、追加するべきモジュールを特定します。PyCharmでは実行結果のエラーメッセージや、コード編集中に冒頭数行に並ぶ 'import モジュール名' の色が変わってお知らせしてくれます。ここでは例として「ccxt」が不足しているとします。
画面左上、File → Settings... と進むと新しい画面が開きます。そこで Project: Trade → Project Interpreter と進むと、インストール済みのモジュール一覧が確認できます。最初からインストールされているものもいくらかありますね。まず、赤枠で囲った緑色の円マーク(Anaconda)が選択されているはずなので、解除してください。
初回だけ、pipに「▲」がついていたら、pipをクリックで選択し右上の[▲]を押しておきましょう。これは更新の意で、今後も「▲」が付いているものを見かけたときはたまに更新してあげましょう。
次に右上の[+]を押します。また新しい画面が開きます。そこで上側の検索窓へ追加したいモジュール名を入力しますと、インターネット上から公開されているモジュールを検索してくれます。簡単な説明があると思いますので、間違いないようでしたら、左下の[Install Package]を押します。しばらくブイ〜ンとなって、モジュールが追加されます。画面下部に「Package 'ccxt' installed successfully」と表示されます。
追加したいモジュールが複数ある場合は、この手順を繰り返して追加していきます。正常に追加された場合は、ひとつ前の一覧画面に反映されているかと思います。
なお、私はこの手順で一度だけどうやってもモジュールを追加できない現象にあいましたが、上述のpipの更新や、時間を置くことで改善しました。何回かやってるうちにできました(謎)
さて、ここまでの説明で、まずは動作する環境を整えられたかと思います。もう一度、先ほど動かなかったスクリプトを実行してみてください。いかがでしょうか?利益は出ましたか?それとも…おっと、やめておきましょうか(笑) あとは、自身でスクリプトのコードをいじいじして、起動 → 停止 → 編集 → 起動…と「PDCA(大切な言葉ですググろう!)」しているうちに、なんとなぁ〜く理解が深まりこんなnoteを書きたくなってくるかもしれませんね。
■その他のエラーに見舞われた場合
さまざまな原因が考えられます。API Key/Passの入力忘れや、インデントがおかしいといったコード記述上の誤りなど。これらについては正攻法でコマンドラインを駆使している場合でも同様ですので、エラーメッセージの特徴的な部分を検索するなど、ゆっくりとひとつずつ確認していきましょう。一度体験されたエラー/対処法はあなたの中に蓄積され、次からはすぐに治せるようになります。また、問題が発生した際にヒントを出してくれたり、いわゆる「Pythonの流儀」と呼ばれる意識を暗にティーチしてくれるのもPyCharmのよいところです。
以上です、おつかれさまでした。私はこれ以上に簡単な環境構築はないかと思っているのですが、コマンドラインを使わないアプローチであっても、こっちはこっちでスクショや説明文などがそれなりの量になりますね。あと、PyCharm自体の更新で操作方法がまるで変わった場合などは、なるほど役に立たない記事になってしまいます…
そのような意味では、やはり先駆者にならいコマンドラインに対する親しみを早く身に付けるべきだと私は考えます。一度修得すれば、大抵のコマンドラインは操作方法が共通ですからね。
みなさんもいっしょにエキスパートをめざしましょう(^ω^)
【おことわり】
本noteは私自身の体験の中から「こうやったらなんとかなったよ!」というものを書いています。あくまでも私のアプローチのひとつであり、内容が正しいかどうかはわかりかねます。ご参考となれば幸いですが、実践した結果として不利益を被られた場合でも、私の方では補償できませんので予めご了承くださいませ。今後も気が向いたらいろいろ書くかもしれませんので、どうぞよろしくお願いします(^ω^)
【参考文献】
本noteの執筆にあたり、参考とさせていただきました情報をご紹介させていただきます。末尾ではございますが感謝申し上げます。
■あみさま
https://note.mu/program
■みんなのPython 第4版 (書籍版)
柴田淳 著 SBクリエイティブ(株)
ISBN:9784797389463
【寄付】
もしあなたの助けとなりました場合は、寄付やサポートなどをいただけますと励みになります。ご一考ください。
BTC:1e1ia62QhSKPJwCVmVzRTXLi8QTCBs7mD
【執筆時点:2018/04/21 追記:2019/09/18】
Windows 10のコンピュータを新調しましたので、私も改めて環境構築しました。以前の記事では説明が合わない箇所がいくらかあったため、現行のものに合わせて修正しました。