大前提
当方分からない事が多々ありますので間違いや遠回りはご容赦願います.
コメント等で教えていただけると嬉しいです!!
やりたいこと
pipenvで仮想環境を立ち上げてVSCodeでDjangoを動かす.
参考
基本的に '仮想環境の作成' は 参考1
'python, Djangoのインストール' は参考2
'VSCodeでDjangoを動かす' は参考3
を主に参考にした. ありがとうございました.
詳しい内容は参考を見てもらって以下では私が躓いた箇所を主に述べていく
pipenvとは
パッケージのインストールから仮想環境の構築までを行う事ができるpythonのパッケージマネージャの一つ
コマンドcdを用いることで簡単に仮想環境を行き来できる点が特徴.
仮想環境内でのパッケージインストール
参考1を参考にして新しいディレクトリの作成からそこでの仮想環境構築, パッケージのインストールを行った. 他のサイトにおいて pipenv --python 3.6
のようにpythonのversionまでを指定してあげるとディレクトリ内ですでにrequirements.txtを作成している場合はその中身に応じたパッケージのインストールが自動的にされるという旨の記載があったが私の場合はできなかったので大人しくpipenv install -r requirements.txt
でインストールした.
仮想環境に入れない
pipenv --python 3.6
で仮想環境をProjectAというディレクトリで作成してもpipenv shell
コマンドで目的の仮想環境に入れず他の仮想環境に入ってしまう事があった. これはProjectAよりも上の階層(/Users/username/Desktop/ProjectA
という構造なら/Users/username
など)で誤って仮想環境を作成していたことが原因であった./Users/username
で仮想環境が作られているためそれよりも下の環境でpipenv shell
コマンドを打つと上の方の仮想環境に入ってしまっていた. 上の仮想環境を破棄して自動的に作成されたpipfile
,pipfile.lock
を破棄することで解決する事ができた.
Djangoの動作確認
参考2を参考にして行った.
ターミナルにてPython, Djangoがインストールされている仮想環境内で以下のコマンドを入力して確認した
django-admin startproject mysite
cd mysite
python manage.py migrate
python manage.py runserver
結果は以下 http://127.0.0.1:8000/
VSCodeの設定
ここまでで仮想環境の構築とそこでのdjangoの動作確認を行なった. 次にVSCodeを用いて動かせるようにしていく.
基本的には参考3をもとに進めていった.
(launch.jasonの中身のことも説明されているのでわかりやすかったです!)
jasonファイルのエラー
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Django",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"runserver"
],
"django": true
}
]
}
ここで"program": "${workspaceFolder}/manage.py",
において実行した際にFileNotFoundError: [Errno 2] No such file or directory
というエラーを吐かれた. これはworkspaceFolderがmusiteの上となっていてmanage.pyを探せなかったことに起因する.
以下のように変更することで解決した.
"program": "${workspaceFolder}/mysite/manage.py",
補足: importエラー
ライブラリをインストール済みにも関わらず、Visual Studio Code 上で import や from の箇所でエラーが表示されたままになっていた.
具体的には、 ModuleNotFoundError
や Unable to import
といったエラーが表示される.
これはVSCodeにおいて適切なインタープリタが選択されていないことが原因であった.
解決方法
まずはpipenvで作った仮想環境がどこにあるのかを以下のコマンドで調べる. 参考
pipenv --venv
場所が確認できたらVSCode上の設定を変更する.参考
・F1
を押す
・Python: Select Interpreter
を入力
・表示された一覧から適切なインタプリターを選択する
適切なインタープリタが選択されたことによってエラーが解消される.
最後に
基本的に参考をもとに進めればどうにかなると思うが何点かつまづいたので備忘録的に記しました.
どなたかのお役に立てれば嬉しいです.