投稿

12月, 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

CGIHTTPServerでのトラブル

今回もPythonの話題です. Pythonは便利な言語で,CGIサーバーも簡単に扱うことができます. その辺の知識は全くなかったので, みんなのPython Webアプリ編 [みんなのシリーズ] を参考にしました. CGIサーバーの勉強中にPythonスクリプトを呼び出せないというエラーが起きたので,その対処法をメモ代わりに残しておきます.   ここで扱う問題は,Windowsでコーディングし,Linuxでの動作確認時に起きた問題です. CGIHTTPServerは,サーバーを起動したカレントディレクトリ上にあるcgi-bin内にあるPythonスクリプトを呼ぶことができます. このPythonスクリプトがうまく実行されないという問題につまづきました. 起きた現象は以下の2つです. ① プログラムが実行されずWebブラウザがスクリプトファイルをダウンロードする. ② プログラムが実行されず,スクリプトファイルの中身が表示される. ▶ 原因と解決方法 それぞれの原因と解決方法を示します. hoge.py:ここでは実行したいPythonスクリプトを表します. ①の原因 Pythonスクリプトに実行権限がないことが原因です. 実行させたいPythonスクリプトがあるディレクトリ(通常はcgi-bin)で,以下のコマンドを実行してみてください. $ ls -l そのときにの以下の様な結果が表示されます. -rw-rw-r-- 1 usr usr 553 12月  9 15:51 hoge.py 該当する実行したいスクリプトファイルの「-rw-rw-r--」の部分を見てください. ここの一番右が「x 」になっていない場合そのファイルに実行権限はありません. ①の解決方法 Pythonスクリプトに実行権限を与えれば解決です. 以下のコマンドを実行してください(hoge.pyは実行権限を与えたいスクリプトファイル名です). $ chmod 755 hoge.py  先ほどの「ls -l」で実行権限を確認します. すると以下のように右端が「x」に変わっているはずです. -rwxr-xr-x 1 hm hm 553 12月  9 15:51 hoge.py 以上で①の問題は解決され