Windows 环境配置
最后更新于
最后更新于
视频教程请观看:https://www.bilibili.com/video/BV1Bh41157gL
开源社区中蕴藏着非常丰富的宝藏,要充分体验 OpenMMLab 等开源社区带来的便利,我们需要具备扎实的环境配置技能。掌握了这些技能,我们可以轻松地运行各种开源 demo,并顺利进行后续的断点调试、源码分析等过程,这将帮助我们在学术和职业发展道路上不断从开源社区汲取力量,实现更高的成就。
本文将分为四个部分:
Visual Studio Code 的安装
Miniconda 配置 Python 虚拟环境
PyTorch & MMCV 等依赖的安装
演示 MMDetection 目标检测 demo
我们到 vscode 的官网 https://code.visualstudio.com/ 下载安装
在安装过程中请勾选上以下所有选项,方便后续能够通过右键打开文件夹。
在 powershell 中 使用 code directory_path
命令打开文件夹。
根据上述的命令,我们就可以轻松的在 powershell 中轻松使用 code
命令打开指定路径的文件夹了。
https://marketplace.visualstudio.com/items?itemName=ms-python.python
Remote-SSH/Explorer/Development
为什么需要安装Miniconda?原始的Python安装不行吗?
Miniconda 下的 conda 命令可以创建不同版本的 Python 虚拟环境,可以满足开源社区不同项目对不同 Python 版本的需求。
conda 命令不仅能够安装常见的 Python 包,而且能够在 Windows 端通过 conda install git
安装 git
等命令行工具,大大提高了效率。
conda 是 PyTorch 官方推荐的安装方法。
Miniconda 的安装包只有70多 MB,非常轻量,而 Anaconda 的安装包则达到了 700 多 MB。官方推荐在安装 Anaconda 时使用 Miniconda。
以上是我们需要安装 Miniconda 的原因。
您可以在 Miniconda 的网站 https://docs.conda.io/en/latest/miniconda.html 下载 exe 文件进行安装。
:: callout 👉
温馨提示:接下来的演示将全部采用 PowerShell 命令行。
:::
如下图所示,尽管已经安装了 Miniconda,但是此时在系统打开的 PowerShell 和 CMD 终端中无法使用 conda
命令。这是因为环境变量 PATH 中没有 conda
命令所在的路径。
环境变量是用于存储操作系统和应用程序需要使用的信息的一种机制。它们包含的信息可以是许多不同的类型,包括路径、文件名、用户名、密码、网络地址、端口号等等。环境变量通常被用作配置信息的存储位置,以便应用程序可以使用这些信息来自定义其行为。
在 Windows 中,您可以使用环境变量来存储各种配置信息。例如,您可以使用环境变量来指定应用程序存储文件的默认路径,或者指定应用程序使用的默认字体。您还可以使用环境变量来配置您的系统路径,以便您可以轻松地访问常用的命令行工具。
要查看 Windows 中的环境变量,可以按下 Win + R 快捷键,打开运行对话框,然后输入“sysdm.cpl”并按 Enter 键。这将打开“系统属性”窗口。在该窗口中,单击“高级”选项卡,然后单击“环境变量”按钮。
在“环境变量”窗口中,您可以查看当前用户和系统的环境变量。您还可以使用“新建”、“编辑”和“删除”按钮来添加、编辑或删除环境变量。注意,更改系统环境变量可能需要管理员权限。
在 PowerShell 中,您可以使用以下命令来列出所有环境变量:
您还可以使用以下命令来获取特定环境变量的值:
例如,要获取 PATH 环境变量的值,可以使用以下命令:
希望这些信息能够帮助您更好地理解 Windows 中的环境变量,并且方便您在环境配置过程中进行调整。
要在 PowerShell 中向 PATH
环境变量中新增指定路径,可以使用以下命令:
这将在当前 PowerShell 会话中临时添加这些路径到 PATH
环境变量。请注意,这些更改仅对当前会话有效,当您关闭 PowerShell 时,这些更改将丢失。
要永久添加这些路径到 PATH
环境变量,请使用以下命令:
这条命令将把指定的路径添加到用户级别的 PATH
环境变量中。这意味着更改仅对当前用户有效。要将这些路径添加到系统级别的 PATH
环境变量中(对所有用户有效),请将 "User" 参数替换为 "Machine"。请注意,修改系统级别的 PATH
变量可能需要管理员权限。
在更改环境变量后,您需要重新启动 PowerShell 或者其他应用程序,以使更改生效。
所以,我们在windows 中需要设置一下 conda 的环境变量。
如上图所示,在系统环境变量中的 PATH 变量中,新增以下路径(请社区同学根据自己 miniconda 安装的实际位置进行调整)。
原理解释:我们可以看到,在路径 C:\\ProgramData\\miniconda3\\Scripts
下可以找到可执行文件 conda
和 pip
。当我们在命令行中执行 conda
命令时,系统会根据环境变量 PATH
里留下的路径 C:\\ProgramData\\miniconda3\\Scripts
找到 conda
可执行程序并执行它。因此,如果 conda
所在的文件夹没有出现在系统环境变量 PATH
中,系统就无法找到该程序并报错。这就是我们需要设置环境变量的原因。
完成设置后我们重新打卡 powershell 终端 输入 conda 命令,发现我们已经可以成功执行了,如下图所提示的,conda 命令包含 create
、init
、info
等命令。
以管理员模式打开 PowerShell,然后输入以下命令:
上面这条命令是重点,特别是你的POWERSHELL打开提示"无法加载文件 C:\Users\vicky\Documents\WindowsPowerShell\profile.ps1"这个错误的时候,一定要执行此条命令,不然会导致你后续无法进入conda环境,导致后续部署都是白干
在 PowerShell 终端中,输入以下命令 conda init
初始化,可以让打开cmd或者powershell时进入conda的base环境。
这将添加 Conda 初始化的脚本到您的 PowerShell 配置文件中,以便在以后启动 PowerShell 时自动激活 Conda 的 base 环境。
在 PowerShell 终端中,输入以下命令创建名为 openmmlab
的 Python 3.9 虚拟环境:
完成此操作后,您可以通过输入以下命令激活名为 openmmlab
的 Python 3.9 虚拟环境:
要退出虚拟环境,请运行:
由于 conda、pypi 等服务器位于海外,使用默认源安装软件可能会因为网络延迟等原因而变得非常缓慢,甚至失败。因此,使用国内源可以更快地下载和安装所需的软件包,提高操作效率。同时,国内源还可能提供一些海外源没有的软件包,或者提供更加稳定的软件包。因此,为了方便国内用户使用,建议将 conda 和 pip 源切换到国内源。
conda 换源方法参考自: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
在 powershell 中运行一句一句执行上述命令,可以发现在 C:\Users\{UserName}
路径下生成了.condarc
文件,此时就实现了换源的操作,此时{UserName}
为 msnod
,用户需要根据自己用户名修改。
.condarc
文件中的内容如下,如果不想通过命令行的方式换源,也可以在 %USERPROFILE%
路径下新建一个 .condarc
文件,然后将以下内容复制到 .condarc
文件中也可以实现换 conda 源的操作。
pypi 换源方法参考自:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
上述代码将 pip 配置文件中的源地址修改为清华源。
原理解释:pip 是 Python 包管理工具,使用时也需要从 Internet 上下载很多东西,包括安装包、依赖包等等,同样需要换成国内的镜像源。清华大学开源软件镜像站也提供了 Python 的镜像源,只需要将 pip 的源地址替换成清华源即可。
除了使用 pip config
命令修改 pip 源之外,您还可以手动编辑 pip.conf
文件。该文件通常位于 ~/.pip/
或 %APPDATA%\\pip\\
目录下。
在 pip.conf
文件中添加以下内容,即可将 pip 源修改为清华源:
原理解释:pip.conf
是 pip 的配置文件,其中包含了 pip 的配置信息,包括 pip 源的地址。通过手动编辑 pip.conf
文件,您可以将 pip 源修改为清华源,使 pip 下载和安装 Python 包时更加快速和稳定。
windows 是没有预装 Git 命令行软件的,所有我们在 PowerShell 运行 git 命名,是会报错的。
我们可以使用 conda 安装 git
安装完毕后我们能在 C:\ProgramData\miniconda3\Library\bin
路径下找到刚刚安装的 git
可执行命令。
通过上述命令使用 vscode 打开 openmmlab 文件夹后,新建一个 hello_world.py
的 python文件。
然后在 VSCODE 中安装 Python 插件
在 Explore 工作区,点击鼠标右键,然后点击 Open in Integrated Terminal (在集成终端中打开),在 vscode 的工作区下面就出现了命令行终端。
我们在上述的命令行终端中运行
使用以下命令进入 openmmlab
环境:
我们先点击 hello_world.py 这个 python 文件,再点击右下角的虚拟环境选择器,最后在 vscode 上方选择刚刚创建的 python 虚拟环境。
此时 在 Explore 工作区,点击鼠标右键,然后点击 Open in Integrated Terminal (在集成终端中打开)openmmlab 的 conda 虚拟环境会被自动激活。
我们先在 vscode 中新建一个 powershell 终端,然后使用如下命令安装 Pytorch 的 cpu 版本。
-c pytorch
的意思是使用 pytorch: [https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud](https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud)
这个 channel 进行下载并安装预编译包。
使用以下命令在 vscode 的 powershell 终端的 openmmlab 环境中 通过 mim 安装 mmcv。
到这里 openmmlab 依赖的 pytorch mmcv 的软件包已经安装完毕。
现在我们来运行 MMDetection 的 Demo。
步骤 1. 我们需要下载配置文件和模型权重文件。
下载将需要几秒钟或更长时间,这取决于你的网络环境。完成后,你会在当前文件夹中发现两个文件 rtmdet_tiny_8xb32-300e_coco.py
和 rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth
。
步骤 2. 推理验证。
你会在当前文件夹中的 outputs/vis
文件夹中看到一个新的图像 demo.jpg
,图像中包含有网络预测的检测框。
将 launch.json 文件替换为以下配置。
通过以下三步能对上文运行的程序进行 debug。
但是此种 debug 方式需要将原来的 python
替换为 python -m debugpy --listen 5678 --wait-for-client
命令输入起来也比较累,所以下文将采取别名
的方式简化命令。
python -m debugpy --listen 5678 --wait-for-client
别名为 pyd
在 powershell 中执行 code $PROFILE
, 使用 vscode 打开 powershell 的 $PROFILE
文件
并在 $PROFILE 中插入以下内容设置别名
此时 debug 命令就简化为