はじめに
さて、anacondaとpycharmがインストールできましたので、次はPycharmでお決まりの「Hello World!」を出力してみましょう。ついでなのでプロジェクトを仮想環境に作ってみました。こんな小さなプログラムをわざわざ仮想環境に置く必要などさらさらないのですが、今後のための忘備録のつもりで書いています。
本家サイトを見ますと、次のように書かれています。
PyCharmはvirtualenvツールを使用してプロジェクト固有の分離仮想環境を作成することを可能にします。仮想環境の主な目的は、他のPythonプロジェクトに関係なく、特定のプロジェクトの設定と依存関係を管理することです。virtualenvツールはPyCharmにバンドルされているため、ユーザーがインストールする必要はありません。
ある程度の時間にわたって使い続けその間に機能強化などを行うプロジェクトが複数あると、なにがしかのライブラリのバージョンが異なってきたりします。そのような時にプロジェクトが仮想環境にある方が便利です。
プロジェクトの作成
pycharmを立ち上げます。ファイル→新規プロジェクト
または、「PyCharmへようこそ」ウィンドウが開く場合は
「+新規プロジェクトの作成」をクリックします。
pycharm を立ち上げます。ファイル→新規プロジェクト
または、「PyCharmへようこそ」ウィンドウが開く場合は
「+新規プロジェクトの作成」をクリックします。
プロジェクトの作成ウィンドウが立ち上がります。ロケーションの最後のフォルダ名untitledが選択された状態になっています。適当なプロジェクトを表す名前にします。ここでは、test001にしました。
プロジェクト・インタープリターの前の三角をクリックして下位層を開きます。仮想環境を使うので次の環境を使用を選びその右側がVirtualenvになっていることを確認します。ベースインタープリターが No Interpleterになっていれば、右側の…をクリックしてAnaconndaでインストールしたpython.exeを選択します。今回はもとからAnaconndaでインストールしたpython.exeのパスが入っていましたが、選択できないときもありました。そのときは仕方がないのでそのままにします。エラーが途中で出てきますが、修復できます。
環境にもよりますが、「グローバルsite-pakagesを継承する」はチェックしたほうが良いと思います。Python には site-packages というディレクトリが存在し、そのサイト (マシン環境) 固有のモジュールは site-packages に保存されるようになっているそうです(でも、Hello.pyは一行表示させるだけですから他のパッケージを継承しなくても問題にはならないでしょうけど。)
「すべてのプロジェクトで使用可能にする」は、本家サイトでは必要に応じてチェックするとしか書かれておらず、どう作用するのかわかりませんが、とりあえずチェックを入れています。
作成をクリックすると私の環境では、インタープリタの作成に失敗のエラーメッセージが出ます。どうもプロジェクト・インタープリタが設定できていないようです。
そこで
ファイル→設定→プロジェクト:test001→プロジェクト・インタープリター
右上のプロジェクト・インタープリターが、やはり
<No Interpreter>
になっていました。そこで三角をクリックしてPython3.7を選択します。いろいろなパッケージのリストが表示されます。
なぜプロジェクトの作成時にプロジェクト・インタープリターが設定できず、あとでは設定できるのはわかりません。とりあえず少々迂回すれば問題は回避できました。
画面左側のプロジェクト・ツール ウィンドウでtest001をクリックするとその下にvenvができているのがわかります。
Hello.pyの作成
venvを選択して、ファイル→新規→Pythonファイルで新規Pythonファイル ウィンドウが立ち上がります。
名前にHelloをいれてリターン(拡張子は入れなくてもOKです)。
Hello.pyのエディタ画面が開きます。
print(‘Hello World!’)
を入力します。 ctrl+sでまたはファイル→すべて保存でファイルを保存します。
test001/venv/Scrips/Hello.py
が出来ていることが判ります。
実行構成の作成と起動
Hello.pyを選択した状態で 実行→構成の編集
名前をHelloにして
スクリプト・パスをHello.pyをフルパスで選択します。
OKで終了
実行→実行またはshift+F10または画面右上の緑色の右向き三角をクリック
でコンソールウィンドウが開いて
Hello World!
がやっと表示されました。おしまい。