文章目录
说明
先说结论,常规的 Python 环境有如下3种,我们只推荐使用 Conda 环境. 使用 Conda 环境则无需安装基础环境
- 基础环境: 直接从 Python 官网下载安装包后安装,配置环境变量,这种方式创建的就是基础环境
- 虚拟环境: 虚拟环境通常基于基础环境来创建,会继承基础环境的 Python 版本和库,虚拟环境间第三方库相互隔离
- Conda: 一个开源的 环境和包管理系统,它可以创建并管理完全隔离的不同版本的 python 环境,包括基本库和第三方库,包括各种依赖,用了它就不必再安装基础环境了
为什么需要环境隔离?
Python 基础环境下,不同的依赖只能存在一个版本,而不同的项目可能依赖了同一个包的不同版本,这样的项目就可能无法在同一个 python 基础环境下运行. 基于基础环境创建的虚拟环境是相互隔离的,第三方依赖包可根据项目要求自行下载,不同项目运行在不同的虚拟环境几下就可以避免依赖冲突等问题
为什么不借鉴 java maven 的依赖管理理念,从而彻底告别虚拟环境,告别空间浪费
虚拟环境管理工具
- virtualenv:
- venv: python 3.3 起自带的虚拟环境管理工具
- pipenv:
- virtualenvwrapper:
- virtualenvwrapper-win:
- virtualenv-burrito:
- autoenv:
- pyvenv:
- pyenv:
- …
Conda
Conda 是一个开源的 环境和包管理系统,也可以创建并管理某 python 版本的完全隔离的虚拟环境,用了它就不必再安装基础环境了
默认配置下,Conda 可以安装和管理由 Anaconda® 构建、审查和维护的数千个包。版本通常低于最新版
- Anaconda: Anaconda是一个打包的集合,里面预装好了 Conda、Python、众多数据科学和机器学习相关的包、科学计算工具等等,所以也称为Python的一种发行版。
- Miniconda: Miniconda 是一个免费的 conda 最小安装程序。 它是 Anaconda 的一个小型引导版本,仅包含 Conda、Python、它们所依赖的包以及少量其他有用的包,包括 pip、zlib 和其他一些包。
- Anaconda Navigator: Anaconda 的 GUI 管理工具
基础环境搭建
到官网找到 Windows 最新版下载并安装
python 安装程序会自动在 path 环境变量中添加这两条目录
目录结构说明
- python.exe: python 解释器,运行时会弹出控制台窗口
- pythonw.exe: 无窗口的python可执行程序,代码在后台运行
- DLLs: 包含 python 的 *.pyd(Python动态模块)文件与几个Windows的 *.dll(动态链接库)文件
pyd 文件是由 D 语言编写的一种 dll 文件,可以保护 python 文件的源码不被暴露 - Doc: 帮助文档
- include: python 的 C 语言接口头文件(.h结尾),当在 C 程序中集成 python 时,会用到这个目录下的头文件
C语言中,后缀为 .h 的文件是头文件, 内含函数声明、宏定义、结构体定义等内容。 后缀为 .c 的文件是源文件, 内含函数实现,变量定义等内容。 为什么要有头文件? C/C++编译的时候先扫描整个文件有没有语法错误, 然后将C语句转化为汇编, 当碰到不认识的变量、类、函数、对象的命名时, 首先查找它有没有声明, 如果没有声明直接报错, 如果有,则根据对应的定义空出一定的存储空间并进行相关的指令转化。 - Lib: python 自带的标准库/包/测试套件等
- Lib/site-packages: 存放安装的第三方库,pip install 安装的第三方库就放在这里
- libs: python 的 C 语言接口库文件
- Scripts: 脚本文件,如 pip.exe 包管理器等
- tcl: python 与 TCL 的结合
- Tools: 一些工具
Miniconda 环境搭建
红字提示内容: 不推荐
勾选 添加环境变量
,因为可能会导致因路径被添加到靠前的位置而造成问题. 如果是首次安装 python 相关环境,可以选择添加到环境变量选项,如果已经有在用的其他配置了 PATH 的 Conda 或者 Python 则不建议
确实在用户环境变量 PATH 里加了很多目录,查看这些目录下都有哪些 exe,根目录下有 python.exe
使用方式
安装完成后,从开始菜单中找到并打开 [Anaconda Prompt],运行 [conda list] 命令,如果正确安装,则会出现已安装的包列表
常用命令
Command reference
conda常用命令:安装,更新,创建,激活,关闭,查看,卸载,删除,清理,重命名,换源,问题
Anaconda /Miniconda 常用命令CONDA集合
查看帮助
conda -h
conda --help
conda install -h
conda install --help
conda env -h
查看信息
conda info # 包含 conda,python,pip 等,还有当前在 conda 命令行中激活的环境
列出环境
conda env list
conda info -e
新安装的 Conda 只有 base 基础环境,自带一个 python.exe,没有虚拟环境,虚拟环境需要自行创建
配置源
编辑用户目录下的 .condarc 文件即可更换 conda 默认源。
# Windows 用户无法直接创建名为 .condarc 的文件,需要先执行如下命令,生成该文件后再修改。C:\Users\用户名\.condarc
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- defaults
show_channel_urls: true
运行 conda clean -i
清除索引缓存,保证用的是镜像站提供的索引。
运行 conda config --show
确认源信息
虚拟环境
# 创建虚拟环境
conda create -h
conda create -n test
conda create -n test2 python=3.8
conda create -n test3 python=3.10.7 # 貌似不能下 Anaconda 库中没有的 python 版本,表现就是转圈很久
conda create -p C:\mrathena\develop\workspace\pycharm\yolov5-6.2\venv
# 查看环境包
conda list # 查看当前激活环境的包,默认激活的是 base 基础环境
conda list -n test # 查看指定虚拟环境的包
# 激活虚拟环境
conda activate test
conda activate C:\mrathena\develop\workspace\pycharm\yolov5-6.2\venv
# 反激活
conda deactivate # 退出虚拟环境,重新激活 base 基础环境
# 删除虚拟环境
conda remove -n test --all
conda remove -p C:\mrathena\develop\workspace\pycharm\yolov5-6.2\venv --all
如果报错如下,检查是否有开代理工具,关闭代理,重开工具就可以了
CondaHTTPError: HTTP 000 CONNECTION Failed for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/current_repodata.json>
创建虚拟环境的注意点
创建虚拟环境时,一定要指定一个不同于 base python 版本的 python 版本
不然的话,新的虚拟环境基本等同于没有创建,只是引用了 base 环境,执行 pip install 会污染 base 环境,真是恶心
创建了一个不同于 base python 版本的虚拟环境后,在虚拟环境中会实打实包含类似 base 的目录结构,也包含对应的 pip.exe,这时候再执行 pip install 就不会影响到 base 环境了
创建虚拟环境时,可以选择 -n / -p 两种方式来确认虚拟环境目录的位置
- -n: 虚拟环境保存在 conda/envs 目录下,激活环境时通过名字激活
- -p: 可自行指定任意目录,但激活环境时需要使用该目录激活(conda activate path),比较麻烦
IDE PyCharm
安装
pycharm-professional-2021.2.4.exe
以下选项自选
- Create Desktop Shortcut,64-bit launcher,创建64位启动器的桌面快捷方式,非常建议
- Update context menu,Add “Open Folder as Project”,在上下文菜单(文件夹右键)添加"以项目的方式打开该文件夹"选项,不选
- Create Associations,.py,创建 .py 文件的关联,默认使用 PyCharm 打开 .py 文件,可选,通常不选
- Download and install JRE x86 by JetBrains,下载 JRE? 不确定做什么,不选
- Update PATH variable(restart needed),Add “bin” folder to the PATH,更新 PATH 环境变量,将启动器目录添加到 PATH,不选
设置
- File | Settings | Appearance & Behavior | System Settings - Project
- 取消勾选 Reopen projects on startup
- Open project in 选择 New Window
- Default project directory 选择为 CLion 分配的工作空间目录,如 C:\mrathena\develop\workspace\pycharm
- File | Settings | Editor | General | Code Completion
- 取消勾选 Match case
- File | Settings | Editor | General | Editor Tabs
- Appearance - Tab placement 选 Left
- Closing Policy - Tab limit 填 100
- File | Settings | Editor | Font
- Font 选 Courier New
- Size 填 16
- File | Settings | Editor | File Encodings
- Global Encoding 选 UTF-8
- Project Encoding 选 UTF-8
- Properties Files (*.properties) - Default encoding for properties files 选 UTF-8
插件
- Manage Plugin Repositories 添加知了插件源
plugins.zhile.io
- IDE Eval Reset,2021.3 起不再可用
- Chinese (Simplified) Language Pack / 中文语言包
- Translation,划词翻译
- CodeGlance2,代码地图
使用
创建工程时,解释器(python.exe)的选择有两种
- 创建新的环境,使用 Conda,相当于 -p 参数创建的虚拟环境,
conda env list
可以看到该环境 - 使用已有环境,选一个就好,也可以先在 cmd 里创建好环境,创建工程时在这里选对应环境,不存在的添加一下(选择 Conda Environment,找到对应 Conda 环境目录中的 python.exe)
打开工程时,同样需要选择解释器,注意同样使用 Conda 工具,创建新的或使用老的
寻找模块文档
在官网输入包名,找到包,点进去,里面一般都会有项目说明,GitHub,文档等内容