使用VS Code在Windows系统上进行Python和Django开发,并利用JupyterLab进行Python编程
首先
-
- つまみ食いしていたら、環境が混沌としてきたので、シンプルなものを再構築しました。
- DockerやWSL2、あるいは、Anacondaのようなものは使用せず、素のPythonを使います。
环境 –
-
- Windows 10 Pro 20H2
-
- Python 3.8.8
- Visual Studio Code 1.54.2
在VS Code中使用Python。
-
- 公式ドキュメント通りにPythonとVSCodeを導入します。
Visual Studio Code を使用して Python 初心者向けの開発環境をセットアップする (Microsoft)
とても分かり易くかかれています。
LinuxやOSX向けの情報もあります。
大まかな流れ
Python
Python のダウンロード ページからPython 8 インストーラをダウンロードします。
インストーラを含まないZIPもあるので注意しましょう。
インストールします。
パスを通す設定はしましょう。
他はデフォルト設定で問題ありません。
インストール後、パスが通っていれば、py –versionでバージョンが表示できます。
VS Code
Visual Studio Code のダウンロード ページから、インストーラをダウンロードします。
インストールします。
MS純正のPython拡張機能を導入します。
デフォルトインタプリタを設定します。
使用 VS Code 进行 Django
假设我们将项目放在基本文件夹D:\development\python中。
检查 pip 更新和模块
D:\development\python\>python -m pip install --upgrade pip
~ 略 ~
D:\development\python\>pip list
Package Version
---------- -------
pip 21.0.1
setuptools 52.0.0
虚拟环境的安装
在使用virtualenv时,相关的依赖模块会被安装。
D:\development\python\>pip install virtualenv
~ 略 ~
D:\development\python\django>pip list
Package Version
---------- -------
appdirs 1.4.4
distlib 0.3.1
filelock 3.0.12
pip 21.0.1
setuptools 49.2.1
six 1.15.0
virtualenv 20.4.2
使用Django时,进行虚拟环境的构建和激活。
在django文件夹中创建虚拟环境,并进行激活,然后切换到当前目录。
D:\development\python\>virtualenv django
~ 略 ~
D:\development\python>django\scripts\activate
(django) D:\development\python>cd django
请检查需要更新的软件包并进行更新。
(django) D:\development\python\django>pip list -o
Package Version Latest Type
---------- ------- ------ -----
setuptools 49.2.1 54.2.0 wheel
(django) D:\development\python\django>pip install -U setuptools
~ 略 ~
Successfully installed setuptools-54.2.0
使用Django进行导入并创建项目。
在安装 Django 之后,在 Django 文件夹内创建一个名为 practice 的项目。
(django) D:\development\python\django>pip install django
~ 略 ~
(django) D:\development\python\django>django-admin startproject practice .
(django) D:\development\python\django>dir /b
.gitignore
Lib
manage.py
practice
pyvenv.cfg
Scripts
使用 VS Code 进行连接
从连接的文件夹启动VS Code。
(django) D:\development\python\django>cd practice
(django) D:\development\python\django\practice>code .

System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
March 02, 2021 - 23:28:58
Django version 3.1.7, using settings 'practice.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
█
- マイグレーションについて警告されていますが、チュートリアル中に「取り敢えず無視」と書かれているので放置します。

日常使用的捷径
VS Code 的设置
打开未配置的VS Code(而不是从项目中打开),在”设置 (Ctrl+,)”中找到”搜索设置”,然后查找python venv。
Python: Venv Path
Path to folder with a list of Virtual Environments (e.g. ~/.pyenv, ~/Envs, ~/.virtualenvs).
可以根据使用方式找到类似的项目。
~, ~/.., ~/.env, ~/.venv, ~/venv, ~/../.env, ~/../.venv, ~/../venv
通过这样设置,VS Code可以更容易地找到虚拟环境。
如果直接编辑settings.json,则添加”python.venvPath”: “~, ~/.., ~/.env, ~/.venv, ~/venv, ~/../.env, ~/../.venv, ~/../venv”等等。
如果VS Code的终端没有识别到虚拟环境的话,您可以先关闭终端(放入垃圾箱),然后再次打开终端(Ctrl+Shift+`),应该能够识别到。
打开 VS Code
请在项目文件夹中打开以下批处理文件。
@echo off
%~d0
cd %~d0%~p0
code .
如果无法选择Python解释器,则按下Ctrl+Shift+P,选择”选择Python解释器”,然后选择虚拟环境路径D:\development\python\django\Scripts\python.exe。如果没有可选项,请从”输入解释器路径…”中进行选择。
如果在VS Code的终端中无法识别虚拟环境,请先关闭终端(放入垃圾桶),然后重新打开(按下Ctrl+Shift+`)。
打开终端
将下面的批处理文件放置在虚拟环境的文件夹内或其父目录中。
@echo off
%~d0
cd %~d0%~p0
if exist %~d0%~p0venv\Scripts set SCRIPTS=%~d0%~p0venv\Scripts\
if exist %~d0%~p0..\Scripts set SCRIPTS=%~d0%~p0..\Scripts\
if exist %~d0%~p0Scripts set SCRIPTS=%~d0%~p0Scripts\
call %SCRIPTS%activate
echo Python Terminal activated by %SCRIPTS%activate
创建此文件的快捷方式,并将”链接目标”设定如下:
C:\Windows\System32\cmd.exe /K D:\development\python\django\practice\terminal.bat
将「作业文件夹」设置如下。
D:\development\python\django\practice
打开快捷方式会出现以下类似的终端窗口。
Python Terminal
(django) D:\development\python\django\practice>
在 JupyterLab 中使用 Python
使用JupyterLab进行虚拟环境的创建、激活和安装JupyterLab。
在JupyterLab文件夹中创建并激活虚拟环境。
切换当前目录并安装JupyterLab。
D:\development\python\>virtualenv jupyterlab
~ 略 ~
D:\development\python>jupyterlab\scripts\activate
(jupyterlab) D:\development\python>cd jupyterlab
(jupyterlab) D:\development\python\jupyterlab>pip install jupyterlab
~ 略 ~
日常使用的捷径
打开JupyterLab
我会把以下这个批处理文件创建到D:\development\python\jupyterlab。
@echo off
%~d0
cd %~d0%~p0
if exist %~d0%~p0venv\Scripts set SCRIPTS=%~d0%~p0venv\Scripts\
if exist %~d0%~p0..\Scripts set SCRIPTS=%~d0%~p0..\Scripts\
if exist %~d0%~p0Scripts set SCRIPTS=%~d0%~p0Scripts\
call %SCRIPTS%activate
start /min %SCRIPTS%jupyter-lab.exe
打开终端
将前述的终端批处理文件放在D:\development\python\jupyterlab目录中。
创建该文件的快捷方式,并将“目标”设置为以下内容:
C:\Windows\System32\cmd.exe /K D:\development\python\jupyterlab\terminal.bat
将”作业文件夹”设置如下。
D:\development\python\jupyterlab
打开快捷方式后,将会弹出如下的终端窗口。
Python Terminal
(jupyterlab) D:\development\python\jupyterlab>
批处理文件的重复使用
在每个环境和项目中都复制使用这些准备好的各种批处理文件非常麻烦。因此,将它们整理到D:\development\python\utility中。
D:\development\python\newenv>mklink /h terminal.bat ..\..\utility\terminal.bat
就像这样,我们会为每个项目创建硬链接并进行复用。
这样一来,无论修改了哪一个,都会反映到所有项目中。
使用 venv 而不是 virtualenv
根据使用方法,venv可能是足够的。
Django — 裙带风骚
D:\development\python>python -m venv django
D:\development\python>cd django
D:\development\python\django>scripts\activate
(django) D:\development\python\django>pip list
Package Version
---------- -------
pip 20.2.3
setuptools 49.2.1
WARNING: You are using pip version 20.2.3; however, version 21.0.1 is available.
You should consider upgrading via the 'd:\development\python\django\scripts\python.exe -m pip install --upgrade pip' command.
(django) D:\development\python\django>python -m pip install --upgrade pip
~ 略 ~
Successfully installed pip-21.0.1
(django) D:\development\python\django>pip list -o
Package Version Latest Type
---------- ------- ------ -----
setuptools 49.2.1 54.2.0 wheel
(django) D:\development\python\django>pip install -U setuptools
~ 略 ~
Successfully installed setuptools-54.2.0
(django) D:\development\python\django>pip install django
~ 略 ~
(django) D:\development\python\django>pip list
Package Version
---------- -------
asgiref 3.3.1
Django 3.1.7
pip 21.0.1
pytz 2021.1
setuptools 54.2.0
sqlparse 0.4.1
JupyterLab
D:\development\python>python -m venv jupyterlab
D:\development\python>cd jupyterlab
D:\development\python\jupyterlab>scripts\activate
(jupyterlab) D:\development\python\jupyterlab>pip list
Package Version
---------- -------
pip 20.2.3
setuptools 49.2.1
WARNING: You are using pip version 20.2.3; however, version 21.0.1 is available.
You should consider upgrading via the 'd:\development\python\jupyterlab\scripts\python.exe -m pip install --upgrade pip' command.
(jupyterlab) D:\development\python\jupyterlab>python -m pip install --upgrade pip
~ 略 ~
Successfully installed pip-21.0.1
(jupyterlab) D:\development\python\jupyterlab>pip install jupyterlab
~ 略 ~
settings.py的配置
语言和时区
- 以下の既存のシンボルの値を書き換えます。
LANGUAGE_CODE = 'ja-jp'
TIME_ZONE = 'Asia/Tokyo'
日志的设置
-
- 以下を末尾に追加します。
levelやfilenameなどは任意に設定可能です。
# Logging
from logging import basicConfig, DEBUG, INFO, WARNING, ERROR, CRITICAL
if DEBUG:
basicConfig(
level = DEBUG,
format = '%(asctime)s %(levelname)s %(message)s',
#filename = 'debug.log',
#filemode = 'w'
)
else:
basicConfig(
level = ERROR,
format = '%(asctime)s %(levelname)s %(message)s',
filename = 'debug.log',
filemode = 'a'
)
-
- 上記の設定ですと、DEBUG = Falseに設定した場合、このプロジェクトでは、D:\development\python\django\debug.logが出力されます。
デフォルトでは、DEBUG = Trueですので、コンソールに出力されます。
残念ながら、コンソールとファイルに同時に記録する需要は考慮されていないようです。
日志输出
from logging import getLogger
logger = getLogger(__name__)
logger.info("information level message")
logger.debug("debug level message")
-
- ログレベルは、デバッグからクリティカルまで5段階のプリセットがあります。
設定したレベル以上で出力したものが記録されます。
例えば、INFOに設定すると、logger.debug()は記録されなくなります。
守旧
- Pythonをアップグレードします。
Python的升级
-
- 必要に応じて、素の環境(≠仮想環境)の記録を取ります。
この記事では、pipとsetuptoolsしかない前提です。
d:>pip freeze >requirements.txt
-
- 新しいバージョンのPythonをダウンロードしてインストールします。
- 続けて、モジュールをアップデートします。
d:>python -V
python 3.9.6
d:>python -m pip install --upgrade pip
~ 略 ~
d:>pip install -U setuptools
~ 略 ~
虚拟环境的升级
-
- 新しいバージョンのPythonを導入しても、仮想環境は更新されません。仮想環境毎に更新が必要です。
- 以下では、virtualenvでなくvenvを前提にして、Jupyterlabの環境を例に挙げます。
更新虚拟环境
-
- 仮想環境を更新するには、いったん仮想環境を抜ける必要があります。
- 以下の.\は、仮想環境のパスを指定しています。
(jupyterlab) D:\development\python\jupyterlab>python -V
Python 3.8.8
(jupyterlab) D:\development\python\jupyterlab>deactivate
D:\development\python\jupyterlab>python -m venv .\ --upgrade
D:\development\python\jupyterlab>Scripts\activate
(jupyterlab) D:\development\python\jupyterlab>python -V
python 3.9.6
模块的更新 de
-
- インストール済みのモジュールを更新します。
- まずは、更新の必要なモジュールのリストを得ます。
(jupyterlab) D:\development\python\jupyterlab>pip list -o
Package Version Latest Type
----------------- --------- --------- -----
anyio 2.2.0 3.3.0 wheel
attrs 20.3.0 21.2.0 wheel
Babel 2.9.0 2.9.1 wheel
bleach 3.3.0 4.0.0 wheel
certifi 2020.12.5 2021.5.30 wheel
~ 略 ~
- 得たリストを加工して、一括更新用のリストにします。
anyio==3.3.0
attrs==21.2.0
Babel==2.9.1
bleach==4.0.0
certifi==2021.5.30
~ 略 ~
- リストを使って一括更新します。
(jupyterlab) D:\development\python\jupyterlab>pip install -r requirements.txt
~ 略 ~
删除不需要的版本
- 使わなくなったバージョンのPythonは、Windowsの設定「アプリと機能」からアンインストールできます。
请查阅该文章
我参考了下列文章。
VSCodeでDjangoを使用した仮想環境を構築する(Windows) (Qiita)
Python仮想環境とDjango (Qiita)
venv — 仮想環境の作成 (公式ドキュメント)
ログ出力のための print と import logging はやめてほしい (Qiita)
Djangoのコンソールにデバッグのメッセージを出力する方法
ライブラリのためのロギングの設定 (公式ドキュメント)
仮想環境のPythonをバージョンアップする (Qiita)
非常感谢您。
最后
- 仮想環境のフォルダ名を後から変更するのは困難です。決定は慎重にどうぞ。