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

pyMCUで遊んで見る その1

 こんばんは。
今日は友人から借りているマイコン”pyMCU”について書きます。
公式ページ:http://www.pymcu.com/index.html
pyMCU:外観

このマイコンはまだマニアック過ぎて日本では公式ホームページからしか買えないようですが、そのうち流行ると思います。

"pyMCU”の特徴はなんと言ってもPythonでプログラム可能な点です。
Pythonなのでコンパイルもいらず、対話型シェルから気軽に動かせます。
テストが簡単にできたり、開発環境の準備が非常に簡単などメリット満載です。

今回は開発環境を用意します。
ちなみに私の環境は以下のとおりです。基本的な説明はWindows基準で行います。
Windows7 64bit
Python2.6.6
pymcu1.0.8
pyserial2.6

1.Pythonのダウンロード
http://www.python.jp/Zope/download/pythoncore
ここから好きなPythonをダウンロードします。
ちなみに、私はPython2.6.6を使用していたので、2.6.6を使用していますが、2.7系列が推奨のようです。
このあとの作業を考えると2.7系列が良いでしょう。

2.Pythonのインストール
インストーラを起動して、順次したがっていきます。
インストール先はCドライブ直下にあるとしてこの先は説明します。

3.pymcuのダウンロード
以下のサイトからpymcuをDLします。
http://pypi.python.org/pypi/pymcu/1.0.8

4.pyserialのダウンロード
*この作業はPython2.7の人は最初から入っていると思われるので多分いりません。
以下のサイトからpyserialをDLします。
http://pypi.python.org/pypi/pyserial/2.6

5.pymcuとpyserialモジュールのパス設定
ダウンロードしたpymcuとpyserialを展開し、以下のフォルダ上に配置します。
C:\Python26\Lib\site-packages
*バージョンが違う人は適せん読み替えsite-packages下に配置して下さい。
ここにフォルダごと移しましょう。
次にPythonを立ち上げ、対話シェルで以下のようなコマンドを入力します。


>>> import sys
>>> sys.path.append('C:\\Python26\\lib\\site-packages\\pymcu-1.0.8')
>>> sys.path.append('C:\Python26\Lib\site-packages\pyserial-2.6')


と打ちましょう。最後に


>>> sys.path
['C:\\Python26\\Lib\\idlelib', 'C:\\Windows\\system32\\python26.zip', 'C:\\Python26\\DLLs', 'C:\\Python26\\lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk', 'C:\\Python26', 'C:\\Python26\\lib\\site-packages', 'C:\\Python26\\lib\\site-packages\\OpenRTM_aist', 'C:\\Python26\\lib\\site-packages\\OpenRTM_aist\\RTM_IDL', 'C:\\Python26\\lib\\site-packages\\pymcu-1.0.8', 'C:\\Python26\\Lib\\site-packages\\pyserial-2.6']


と入力し、パスが追加されているか確認します。
これは私の環境のものなので、完全には一緒にならないと思います。
重要なのは"pymcu"と”pyserial”が追加されているかどうかです。
*ちなみにモジュールの追加場所はどこでも構いませんが、Pythonはsite-packagesに入れることを推奨しているようです。

6.環境設定の確認
対話シェルに以下のコマンドを入力して下さい。


>>> import pymcu


pymcuをインポートしてエラーが出なければ環境設定は完了です。
もしpymcuをインポートして以下のようなエラーが出た場合はモジュールがうまく取り込めていません。


>>> import pymcu
Traceback (most recent call last):
File "", line 1, in
import pymcu
File "C:\Python26\lib\site-packages\pymcu-1.0.8\pymcu.py", line 12, in
import sys, os, serial, time
ImportError: No module named serial


pyserialが見つかっていないので、もう一度パスが合っているか確認してやり直して下さい。

7.動作確認
それでは早速動作させてみましょう。
以下の公式チュートリアルのBlinking an LEDをやってみます。
http://www.pymcu.com/BlinkingLed.html

このチュートリアルには回路図や実装図まであるので非常にわかりやすです。
開発にはブレッドボードを使うとやりやすいとおもいます。

用意するものは以下のものです。ただし、あくまでも例で正直なんでも構いません。
・ブレッドボード
EIC-801
・LED
L314LBD 
・抵抗
カーボン抵抗1/4W 330Ω
・配線
ブレッドボード・ジャンパーコード(オス-オス)セット


 
import pymcu # pymcuモジュールのインポート

mb = pymcu.mcuModule() # pymcuの初期化 pymcuとPCの接続を行います COMやBaudrateの設定は自動

for x in range(25): # 25回ループ
mb.pinHigh(1) # IOのD1をHighに設定 LEDが光る
mb.pausems(500) # 500ms待つ
mb.pinLow(1) # IOのD1をLowに設定 LEDが消える
mb.pausems(500) # 500ms待つ


このプログラムを実行するとLEDが点滅してある程度したら終了すると思います。
pyMCU:LED点滅

これでpymcuの導入編は終わりです。

コメント

このブログの人気の投稿

C++11のためにGCCの最新版をインストールする

分解:Logicool M570

MOCO'Sキッチンのフォントに似せるβ版