投稿

3月, 2013の投稿を表示しています

VS Codeでvenvがうまく動作しなくなった話

結論 venvをあきらめて、Pipenvを導入すればなぜか解決した。 経緯 Pythonの開発環境にVS Codeを使っていましたが、ある日突然、venvで作った環境が見えなくなりました。 PowerShellからは切り替えができるので、venv自体は正しく動いているようでした。 PythonとVS Codeをクリーンインストールしても状況は変わりませんでした[1]。 Pipenvの使い方 最近はPipenvというものがあるらしいので、それを導入することとしました[2][3]。 pip install pipenv 以下のように環境変数を設定することで、プロジェクトのフォルダ直下に仮想環境を構築してくれます。 PIPENV_VENV_IN_PROJECT=true VS Code上にフォルダを作成し、その直下で仮想環境を作成します。 コマンドはVS Code上のPowerShellで行いました。 例えば以下のようになります。パスやPythonのバージョンはご自身の環境に合わせてください。 *pythonの後に半角スペースがあるのでうっかり詰めないでください。 *venvファイルが作成されるという情報もありますが、私の場合はPipfileのみ作られました。 PS PS C:\Users\User Name\Documents\CODE\Python\Test> pipenv install --python 3.8 VS Code上でF1キーを押して、「reload」を検索して実行します。 これで左下のPythonのバージョンセレクトから環境選択できるはずです。 仮想環境から抜けるときは以下のコマンドを使います。 deactivate 参考文献 [1] sota0726 「VScodeを完全にアンインストールする方法(windows10)「拡張機能のホストが予期せずに終了しました。」を改善するために」閲覧日:2020/09/13 https://www.atmarkit.co.jp/ait/articles/1810/12/news026.html [2] KRiver1 「pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。」閲覧日:2020/09/13 h

Python:matplotlibでScatterを使った2Dアニメーション

 お久しぶりです。 ブログお引越し後の一発目のネタが実はずっと前に書きかけだったネタです。 今日は matplotlib というPythonから使用出来るグラフ描画ライブラリを使用したのでそれについて書きます。 単純な内容であれば非常に簡単に使えるのですが、アニメーションのサンプルがわかりづらく、手間取ったのでメモ代わりです。 ほとんどのサンプルが乱数を使っており、挙動が理解しづらいため書き直して確認しました。 内容的には、Scatterという散布図を作成する機能で2Dアニメーションを行う方法について説明します。 XY平面に描画するサンプルを扱います。 1. 処理の流れ  ① 必要なモジュールのインポート  ② 描画準備(値の設定、画面の設定)  ③ アニメーションの設定  ④ コールバック関数の設定 という流れです。実際にはコールバック関数は最初に設定しています。 アニメーションでは設定したコールバック関数が一定間隔で呼び出されます。 そこに再描画用の設定をすることでアニメーションにすることができます。 2. ソースコード XY平面上にプロットされた点が移動するサンプルが以下のようなスクリプトになります。 import matplotlib.pyplot as plt import matplotlib.animation as animation import numpy as np def _update_plot (i, fig, scat): scat.set_offsets(([0, i],[50, i],[100, i])) print ( 'Frames: %d' %i) return scat, fig = plt.figure() x = [0, 50, 100] y = [0, 0, 0] ax = fig.add_subplot(111) ax.grid( True , linestyle = '-', color = '0.75' ) ax.set_xlim([-50, 200]) ax.set_ylim([-50, 200]) scat = plt.scatter(x, y, c =