ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Python 版本管理:Anaconda、pyenv、virtualenv、venv

Python 版本管理:Anaconda、pyenv、virtualenv、venv 1、一些 切换 工具由于 Python 的版本众多还有 Python2 和 Python3 的争论因此有些软件包或第三方库就容易出现版本不兼容的问题。同时在python 开发中可能会遇到当前的项目依赖的是某一个版本但是另一个项目依赖的是另一个版本这样就会造成依赖冲突。对于上面的问题这时就需要Python版本环境切换工具。Python 版本环境切换工具 的 作用让多个不同版本的 Python可以在系统上共存。并且提供简单的命令来支持不同 Python 版本之间的切换。一些工具早期痛点: 在虚拟环境工具出现之前所有 Python 项目共享系统全局的site-packages。如果项目 A 需要 Django 2.0而项目 B 需要 Django 4.0开发者将无法在同一台机器上同时开发这两个项目强行安装会导致版本冲突Dependency Hell。virtualenv 时代: 早期社区主要依赖第三方工具virtualenv来解决这一问题它功能强大但需要额外安装。virtualenvwrapper 是对 virtualenv 的一个封装简化了virtualenv 命令的使用并且进行了一些功能扩展pyenv目前最好用的 python版本环境切换工具不支持 Windows。pywin 是 Windows 上 pyenv 的替代品但是功能相对 pyenv 比较少venv 的诞生 (Python 3.3): 为了标准化和简化流程Python 3.3 引入了内置模块venv(PEP 405)。它成为了官方推荐的标准工具无需额外安装即可使用轻量且稳定。现代生态: 如今venv是日常开发的首选而conda则在数据科学领域占据主导poetry和pipenv等工具则在依赖管理层面提供了更高级的封装。Python 2.x 时代主要依赖第三方工具virtualenv由 Ian Bicking 开发。Python 3.3 (2012)PEP 405 被接受venv模块作为标准库内置无需额外安装。Python 3.4ensurepip模块加入虚拟环境默认包含pip。现代趋势venv成为官方推荐标准virtualenv主要用于兼容旧版本或特殊需求conda在数据科学领域流行。PyCharm 支持的虚拟环境2、Anaconda (推荐)Anaconda 官网 文档http://docs.anaconda.com/anaconda/user-guideAnaconda安装与配置全攻略https://zhuanlan.zhihu.com/p/18965564300871524021. 进入官网 https://www.anaconda.com/download点击【skip registration】2.跳过后点击【download】https://blog.csdn.net/m0_65482549/article/details/142104010Anaconda 是 Python 的一个开源发行版本。Anaconda 里面集成了很多关于 python 科学计算的第三方库主要面向科学计算且安装方便而 python 是一个编译器。如果不使用 anaconda那么安装库的时候库的依赖安装起来比较麻烦。conda是Anaconda 提供的一个管理工具conda 是开源包packages和 虚拟环境environment的管理系统可以把conda看作是pip virtualenv PVM(Python Version Manager) 一些必要的底层库。即conda 就是一个更完整也更大的集成管理工具。主要优点是预装了很多第三方库而且 Anaconda 中增加了conda install 命令安装新 package 格外方便还自带 Spyder IDE 和 Jupyter Notebookconda config --set auto_activate false # 取消默认加载环境true为确认默认加载环境如果问题仍然存在可以手动编辑 Conda 的配置文件.condarc。在文件中添加或修改以下内容auto_activate: false 保存后重启终端即可。命令查看当前配置conda config --show | grep auto_activateWindows 安装建议安装在其他盘要不下载的包和创建的环境都在C盘然后按照安装提示一步步安装即可。Anaconda Navigtor用于管理工具包和环境的图形用户界面后续涉及的众多管理命令也可以在 Navigator 中手工实现。Jupyter notebook基于web的交互式计算环境可以编辑易于人们阅读的文档用于展示数据分析的过程。qtconsole一个可执行 IPython 的仿终端图形界面程序相比 Python Shell 界面qtconsole 可以直接显示代码生成的图形实现多行代码输入执行以及内置许多有用的功能和函数。spyder一个使用 Python 语言、跨平台的、科学运算集成开发环境。配置环境变量window 环境变量设置电脑 --- 属性 --- 高级系统设置 --- 环境变量 --- 系统变量 --- Path然后在 Path 中添加 anaconda 的安装目录的 Scripts 文件夹注根据 Anaconda 安装的位置修改D:\anaconda3D:\anaconda3 // 如果需要使用conda自带的python则需要这个D:\anaconda3\Scripts // conda自带脚本D:\anaconda3\Library\bin // jupyter notebook动态库D:\anaconda3\Library\usr\binD:\anaconda3\Library\mingw-w64\binD:\anaconda3\condabin安装完成后我们还需要对所有工具包进行升级以避免可能发生的错误。打开命令行(最好用管理员模式打开) 执行conda --version升级所有包conda upgrade --all 或者 conda update --allLinux 安装下载 sh 文件直接执行安装可以根据时间排序查找最新的 sh 文件Ubuntu 安装 condahttps://zhuanlan.zhihu.com/p/459607806镜像站点https://repo.anaconda.com/archive/?CMOAhttps://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/在 linux 环境中当 conda activate 不生效时可以使用 sorce activate 代替1. 创建虚拟环境conda create -n your_env_name python3.12 (自动安装3.12的最新版本)在指定的位置创建虚拟环境conda create -p /PATH/TO/path查看所有的conda虚拟环境conda env list2. 激活虚拟环境source activate your_env_name(虚拟环境名称)3. 退出虚拟环境source deactivate your_env_name(虚拟环境名称)4. 删除虚拟环境conda remove -n your_env_name(虚拟环境名称) --all5. 安装包conda install package_name(包名)conda install scrapy1.3 # 安装指定版本的包conda install -n 环境名 包名 # 在conda指定的某个环境中安装包当执行 conda 命令找不到时解决方法如下先确认你的 Conda 安装路径macOS 常见 3 种默认目录任选一条测试是否存在# Miniconda 用户最常用 ls ~/miniconda3/bin/conda # 用户目录 Anaconda ls ~/anaconda3/bin/conda # /opt 全局安装pkg 包安装 ls /opt/anaconda3/bin/conda方案 1官方标准初始化推荐完美支持 conda activate1. 执行初始化替换成你自己的 conda 路径。原理自动在~/.zshrc底部写入一段 conda 托管脚本自动注入环境、激活钩子解决conda activate报错问题场景 1miniconda3~/miniconda3/bin/conda init zsh场景 2anaconda3 用户目录~/anaconda3/bin/conda init zsh场景 3/opt/anaconda3/opt/anaconda3/bin/conda init zsh2. 重载配置 / 重启 iTermsource ~/.zshrc # 或者直接关闭所有 iTerm 窗口重新打开3. 验证conda --versionconda activate base方案 2手动写入 PATH追加环境变量到 zshrc以/opt/anaconda3举例替换为你自己的路径echo export PATH/opt/anaconda3/bin:$PATH ~/.zshrcMiniconda 版本echo export PATH$HOME/miniconda3/bin:$PATH ~/.zshrc生效配置source ~/.zshrc如果 Oh My Zsh 环境下 conda 失效先执行conda init zsh在~/.zshrc顶部保证 conda 脚本在 ohmyzsh 加载前执行重载source ~/.zshrc不想开机自动进入 base 环境conda config --set auto_activate_base falsesource ~/.zshrc清理旧的重复 conda 配置vim ~/.zshrc删除所有# conda initialize 到# conda initialize 之间的代码重新执行conda init zsh。验证是否永久生效关闭全部 iTerm 窗口重新打开输入conda info 正常输出版本、安装路径即配置完成。设置国内镜像因为Anaconda.org的服务器在国外。所幸的是https://mirrors.tuna.tsinghua.edu.cn/ 有 https://mirrors.tuna.tsinghua.edu.cn/anaconda/ 的镜像我们将其加入conda的配置即可。请在cmd中运行以下代码conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --set show_channel_urls yes# 设置搜索时显示通道地址Conda ( windows、linux )conda 将 conda、python 等都视为 package因此完全可以使用 conda 来管理 conda 和 python 的版本。创建 环境conda create -n env3 python3 // 创建 env3 环境并指定 python 版本为3(的最新版本)conda create --name py39 python3.9activate // 切换到 base 环境activate py39 // 切换到 py39 环境使用 activate 激活某个环境执行进入命令实际上此时系统把默认环境从PATH中去除再把 3.9 对应的命令加入PATHWindows 进入、退出进入时执行命令activate py39退出时执行命令deactivate py39Linux Mac 进入、退出进入时执行命令source activate py39退出时执行命令source deactivate py39# 删除一个已有的 虚拟环境例如python34conda env remove -n python34conda remove -n learn_1 --all# 复制 ( 克隆 ) 虚拟环境conda create -n BBB --clone AAA // 从 BBB 克隆一个新的虚拟环境 AAA# 移植过来的环境只是安装了你原来环境里用 conda install 等命令直接安装的包# 你用pip之类装的东西没有移植过来需要你重新安装。conda update conda # 更新conda保持conda最新conda install requests # 等价于 pip install requestsconda install numpy scipy pandas # 同时安装多个包conda install numpy1.10 # 指定安装的版本conda update requests // 更新 requests 包conda remove requests 或者 pip uninstall requests // 删除包conda remove -n py39 numpyconda update anaconda # 更新 anacondaconda update python # 更新 pythonconda search numpy # 查找 package 信息conda env list // 列出 所有环境conda list // 列出当前环境的所有包conda list -n py39 # 查看某个指定环境的已安装包 ( -n 即 -name)conda install -n py39 numpy # (-n 即 -name)conda remove -n learn --all // 删除learn环境及下属所有包conda env export environment.yaml // 导出当前环境的包信息conda env create -f environment.yaml // 用配置文件创建新的虚拟环境补充如果创建新的 python 环境比如 3.9运行conda create -n py39 python3.9之后conda 仅安装 python 3.9 相关的必须项如 python、pip 等如果希望该环境像默认环境那样安装 anaconda 集合包则需要执行conda install anaconda。结合创建环境的命令以上操作可以合并为conda create -n python34 python3.4 anaconda从 Anaconda.org ( http://anaconda.org ) 安装包。当使用 conda install 无法进行安装时可以考虑从 Anaconda.org 中获取安装包的命令并进行安装。http://anaconda.org升级 condaconda activate base # 必须进入 base 环境conda update -n base conda # 这个只更新 base 环境和 condaconda update --all # 更新所有管理虚拟环境activate命令是进入 anaconda 设定的虚拟环境中如果后面什么参数都不加那么会进入 anaconda 自带的 base 环境。示例执行 python 命令行前面就会多一个(base)说明当前我们处于的是 base 环境下。创建虚拟环境执行命令conda create --name env_name list_of_packages-n 代表 name一个杠表示短参数长参数可以使用 --nameenv_name 是需要创建 的虚拟环境名称list_of_packages 在新环境中需要安装的工具包 (多个 包 用空格分隔)。示例conda create -npy39python3.9 pandas说明创建 名叫py39的虚拟环境指定 python 版本为 3.9并安装 pandas 。 python 也相当于 一个 包 即创建一个 名叫 py39 的虚拟环境然后安装 python3.9 和 pandas 这两个包。提示默认情况下在 Linux 中新创建的环境将会被保存在/Users/user_name/anaconda3/env目录下其中user_name为当前用户的用户名。在 windows 中创建的环境则在anaconda3 安装目录 的 env 目录下。创建的 虚拟环境 在 envs 目录下。anaconda 所谓的创建虚拟环境其实就是安装了一个真实的 python 环境, 只不过我们可以通过 activateconda 等命令去随意的切换我们当前的 python 环境用不同版本的解释器和不同的包环境去运行 python 脚本。与 pycharm 连接pycharm 也能很方便的和 anaconda 的虚拟环境结合。在 Setting Project Project Interpreter 里面修改 Project Interpreter点击 齿轮标志 再点击 Add Local 为你某个环境的 python.exe 解释器即可。Anaconda Navigtor按下 Windows 徽标键调出 Windows 开始菜单可以看到 “最近添加”。Anaconda prompt是一个Anaconda的终端类似 cmd 命令可以便捷操作 conda 环境可以建立不同的版本环境 Python2 和3打开 Anaconda Prompt这个窗口和 doc 窗口一样的打开之后就是base 虚拟环境。输入命令就可以控制和配置 python最常用的是 conda 命令这个 pip 的用法一样此软件都集成了你可以直接用点开的话如下图。用命令 “conda list” 查看已安装的包从这些库中我们可以发现NumPySciPyMatplotlibPandas说明已经安装成功了!Anaconda Navigtor一个图形用户界面GUI是 Anaconda 发行版中自带的工具旨在帮助用户无需通过输入复杂的命令即可轻松管理 Python 环境、安装包以及相关应用程序。点击 Anaconda Navigator 第一次启用会进行初始化耐心等待一段时间加载完成即可。使用方法通过以下方式启动 Anaconda Navigator在 Windows 系统中从“开始”菜单点击 Anaconda Navigator 图标。在 macOS 系统中通过 Launchpad 启动。在 Linux 系统中打开终端并输入 anaconda-navigator。相关工具Jupyter notebook 和 Jupyter Lab基于 web 的交互式计算环境可以编辑易于人们阅读的文档用于展示数据分析的过程。可以在Anaconda Navigtor中启动Jupyter notebook。也可以在 CMD 中执行: jupyter notebook推荐使用或者打开任意文件夹shift鼠标右击然后再 shell 框中输入 jupyter notebook 推荐使用此方法的好处是形成的 ipynb 文件会保存在当前的文件夹中方便管理Jupyter notebook 启动后会打开一个网页常用的编辑器或集成开发环境PyCharm有免费社区版和收费的专业版专为 Python 而生的 IDENotePad免费开源的编辑器支持丰富的插件支持中文界面AtomGithub 推出的免费开源编辑器支持丰富的插件Sublime收费的 Python 编辑器支持丰富的插件SpyderAnaconda 内置的 IDE开源。IDLEPython 官方的内置编辑器。jupyter notebook集成很多使用功能的编辑器同时兼具交互式的优点。 它支持多种语言如 Python IPython JuliaR 等。可以在同一个界面中保存展示代码展现运行结果实时交互模式运行代码等功能并且对新手非常友好不需要过多的配置。JupyterLab是 jupyter notebook 的升级版本。它具有模块化结构您可以在同一窗口中打开多个笔记本或文件例如 HTML文本Markdown 等作为选项卡。 它提供了更多类似 IDE 的体验。然后运行安装pip install jupyter执行jupyter qtconsoleSpyder一个使用 Python 语言、跨平台的、科学运算集成开发环境。Spyder 编辑器截图如下以后就可以用这款编辑器来编写代码它最大优点就是模仿 MATLAB 的“工作空间”。spyder.exe 放在安装目录下的 Scripts 里面如我的是 C:\ProgramData\Anaconda2\Scripts\spyder.exe直接双击就能运行。我们可以右键发送到桌面快捷方式以后运行就比较方便了。我们简单编写一个程序来测试一下安装是否成功该程序用来打开一张图片并显示。首先准备一张图片然后打开spyder编写如下代码# -*- coding: utf-8 -*-Spyder EditorThis is a temporary script file.from skimage import ioimg io.imread(D:/yangmi.jpg)io.imshow(img)点击上面工具栏里的 绿色三角 运行程序最终显示如下jupyterlabJupyter Lab 的启用 和 Jupyter Notebook 方法一样只需要将输入的 jupyter notebook 换成 jupyter lab 即可。点击 jupyterlab 下面的 Launch 会在浏览器打开 http://localhost:8888/lab 这里就可以输入 Python 代码啦来一句 Hello World 吧。我们可以打开 Anaconda Navigator - Launch jupyterlab 也可以直接在浏览器输入 http://localhost:8888/lab 可以保存为书签。如果是布置在云端可以输入服务器域名IP是不是很爽VSCodeVisual Studio Code是一个轻量级但功能强大的源代码编辑器可在桌面上运行适用于WindowsmacOS和Linux。它内置了对JavaScriptTypeScript和Node.js的支持并为其他语言如C CJavaPythonPHPGo和运行时如.NET和Unity提供了丰富的扩展生态系统。GluevizGlue 是一个Python 库用于探索相关数据集内部和之间的关系。其主要特点包括链接统计图形。使用Glue用户可以创建数据的散点图直方图和图像2D和3D。胶水专注于刷牙和链接范例其中任何图形中的选择传播到所有其他图形。灵活地跨数据链接。Glue使用不同数据集之间存在的逻辑链接来覆盖不同数据的可视化并跨数据集传播选择。这些链接由用户指定并且是任意灵活的。完整的脚本功能。Glue是用Python编写的并且建立在其标准科学库即NumpyMatplotlibScipy之上。用户可以轻松地集成他们自己的python代码进行数据输入清理和分析。Orange3交互式数据可视化。通过巧妙的数据可视化执行简单的数据分析。探索统计分布箱形图和散点图或深入了解决策树层次聚类热图MDS和线性投影。即使您的多维数据也可以在2D中变得合理特别是在智能属性排名和选择方面。老师和学生都喜欢它。在教授数据挖掘时我们喜欢说明而不是仅仅解释。而橙色很棒。Orange在世界各地的学校大学和专业培训课程中使用支持数据科学概念的实践培训和视觉插图。甚至还有专门为教学设计的小部件。附加组件扩展功能使用Orange中可用的各种附加组件从外部数据源挖掘数据执行自然语言处理和文本挖掘进行网络分析推断频繁项目集并执行关联规则挖掘。此外生物信息学家和分子生物学家可以使用Orange通过差异表达对基因进行排序并进行富集分析。3、pyenvgithubhttps://github.com/pyenv/pyenvPython多环境管理 --- pyenvhttps://blog.csdn.net/qq_27525611/article/details/113656812pyenv 简介pyenv 是 Linux 上的 Python 多版本管理官方不支持windows。如果想在 Windows 中有一个 fork 版本的 pyenv-win 可以再 windows 上使用pyenvhttps://github.com/pyenv/pyenvpyenv-winhttps://github.com/pyenv-win/pyenv-win提到 Python 环境管理更多人可能会首先想到 virtualenv。但与用于创建独立包环境的 virtualenv 不同pyenv 的作用仅限于维护不同版本的 Python。它的使用不依赖于 Python是一个简单、独立的纯 shell 脚本工具。pyenv 也可以以 pyenv-virtualenv 插件的形式支持 virtualenv强烈建议使用。安装后比较方便的是可以在你 cd 到项目目录时自动切换相应的虚拟环境而不用老是source.pyenv 在安装和配置完毕后可以实现一键命令切换全局、本地或当前 shell使用的Python 版本pyenv 的美好之处在于他并没有使用将不同的$PATH植入不同的 shell 这种高耦合的工作方式而是简单地在$PATH的最前面插入了一个垫片路径shims~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有对 Python 可执行文件的查找都会首先被这个 shims 路径截获从而架空了后面的系统路径。和 git 一样pyenv 命令根据第一个参数委托给子命令。最常见的子命令有pyenv commandspyenv localpyenv globalpyenv shellpyenv installpyenv uninstallpyenv rehashpyenv versionpyenv versionspyenv whichpyenv whencepyenv 基本使用1. 安装git clone https://github.com/pyenv/pyenv.git2. 配置 pyenv 环境变量echo export PYENV_ROOT$HOME/pyenv ~/.bash_profileecho export PATH$PYENV_ROOT/bin:$PATH ~/.bash_profileecho eval $(pyenv init -) ~/.bash_profilesource ~/.bash_profile3. 基本命令pyenv commands 查看 pyenv 命令pyenv install --list 查看可安装的 python 版本pyenv versions 查看已安装版本pyenv version 查看当前使用的 python 版本pyenv install -v 版本号 安装 pythonpyenv rehash 刷新 python 已安装列表pyenv uninstall 版本号 删除 pythonpyenv global 版本号 设置当前全局python版本pyenv local 版本号 设置局部python版本pyenv local --unset 取消局部python版本设置,或者删除当前目录下的.python-version文件4. 安装 pyenv-virtualenv 插件git clone git://github.com/yyuu/pyenv-virtualenv.git ./pyenv/plugins/pyenv-virtualenvecho eval $(pyenv virtualenv-init -) ~/.bash_profilesource ~/.bash_profile5. 使用 pyenv-virtualenvpyenv virtualenv 版本号 name 创建一个虚拟环境,命名为name 创建好后可通过pyenv versions来查看pyenv activate name 切换到 name 虚拟环境中pyenv deactivate 推出虚拟环境pyenv virtualenv-delete name 删除 name 环境简单使用pyenv version # 查看当前版本pyenv versions # 查看所有版本pyenv install --list # 查看所有可安装的版本pyenv install 3.6.5 # 安装指定版本pyenv rehash # 安装新版本后rehash一下pyenv uninstall 3.5.2 # 删除指定版本pyenv global 3.6.5 # 指定全局版本pyenv global 3.6.5 2.7.14 # 指定多个全局版本, 3版本优先# 实际上当你切换版本后, 相应的pip和包仓库都是会自动切换过去的效果包管理插件 pyenv-virtualenv首先下载$ git clone https://github.com/pyenv/pyenv-virtualenv.git$.pyenv/plugins/pyenv-virtualenv克隆完成后添加如下到 shell 配置文件(mac的话是.zshrc)$ echo eval $(pyenv virtualenv-init -) ~/.bash_profile实际上 mac 用户直接 brew 安装就可以了...$ brew install pyenv-virtualenv$ eval $(pyenv init -)$ eval $(pyenv virtualenv-init -)使用$ pyenv virtualenv 3.6.5 v365env # 创建一个3.6.5版本的虚拟环境, 命名为v365env$ pyenv activate v365env # 激活虚拟环境$ pyenv deactivate v365env # 关闭虚拟环境当切换 python 解释器的时候对应的 pip 和包库也会一并切换过去而且可以为指定版本的解释器创建项目所需的虚拟环境切换的时候也异常简单。常用的做法是为每个项目创建不同的虚拟环境当进入该环境的时候就可以随便浪而不用担心影响到其它项目搭配Pycharm使用效果更佳。4、virtualenv​Github: https://github.com/pypa/virtualenvDoc: https://virtualenv.pypa.io/en/latest/virtualenv 通过创建一个虚拟化的 python 运行环境将我们所需的依赖安装进去的不同项目之间相互不干扰。然后在每个环境中安装需要的软件包(配合 pip 使用)这一系列的环境是相互隔离的。作为一个独立的环境就不容易出现版本问题还方便部署。5、venv (Python 自带 )官网文档https://docs.python.org/zh-cn/3.13/library/venv.htmlPython 虚拟环境 (venv) 全面使用指南https://blog.csdn.net/qq_45657541/article/details/158925186venv 是 Python3.3 的版本的一个模块通过这个模块可以创建与系统python隔离的轻量级 虚拟环境。每一个虚拟环境都有其自己的 Python二进制允许有不同的Python版本创作环境并且可以拥有自己独立的一套 Python包。核心命令速查表操作Windows (CMD/PowerShell)macOS / Linux创建环境python -m venv .venvpython3 -m venv .venv激活环境.venv\Scripts\activatesource .venv/bin/activate退出环境deactivatedeactivate安装包pip install packagepip install package查看已安装包pip listpip list导出依赖pip freeze requirements.txtpip freeze requirements.txt安装依赖pip install -r requirements.txtpip install -r requirements.txt删除环境rmdir /s /q .venvrm -rf .venv命名约定业界通常将虚拟环境命名为.venv加点表示隐藏目录并在.gitignore中忽略它。常用命名约定:.venv: 最推荐的命名以.开头表示隐藏文件夹保持目录整洁。venv: 传统命名。env: 简短命名。-m 参数以脚本形式运行库模块python3 -m venv XXXXXX 指定要创建的文件夹名。因为在执行这行命令之后就会把与 Python 虚拟环境有关的文件放到 XXX 里面。之后只需要运行这个里面的 activate 文件就行。Windows 下 cmd 执行C: XXX/Scripts/activate.batLinux下执行$ source XXX/bin/activatePowerShell下执行PS C: venv/Scripts/Activate.ps1注若 PowerShell 提示执行策略错误可能需要以管理员身份运行需运行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser。激活成功标志命令行前出现(.venv)前缀。创建 虚拟环境mkdir my_projectcd my_project进入项目目录执行创建命令macOS/Linuxpython3 -m venv .venvWindowspython -m venv .venv目录结构解析bin/(Unix) 或Scripts/(Windows)存放激活脚本和解释器。Lib/或lib/存放安装的第三方库。pyvenv.cfg配置文件指向基础 Python 解释器。忘记激活环境在未激活环境下安装的包会进入全局环境导致虚拟环境失去意义。检查方法: 看命令行前是否有(.venv)前缀或运行which python(Linux/Mac) /where python(Windows) 确认路径是否指向.venv目录。虚拟环境包含大量二进制文件和特定路径配置体积大且不可移植。现象仓库体积巨大且在其他机器上因路径硬编码无法运行。解决务必在.gitignore中添加.venv/venv/env/*.pyc__pycache__/移动虚拟环境虚拟环境中的许多脚本如activate和 Shebang 行包含绝对路径。现象将整个.venv文件夹复制到另一台电脑或不同路径导致无法激活。原因虚拟环境中的脚本如activate和解释器路径是硬编码的绝对路径。解决不要移动环境。如果项目移动了删除旧的.venv在新位置重新创建并安装依赖。在新位置重新创建环境并pip install -r requirements.txt。删除 虚拟环境虚拟环境只是一个文件夹删除它即删除了环境。确保先退出环境:deactivatemacOS/Linuxrm -rf .venvWindows(CMD)rmdir /s /q .venv管理与安装包安装单个包pip install requests安装多个包pip install requests pandas numpy安装指定版本pip install django3.2.12查看已安装包pip list升级 pippip install --upgrade pip批量 安装Python 包导出依赖文件pip freeze requirements.txt # 冻结(freeze) 环境就是将当前环境的软件包导出到文件中查看依赖的包cat requirements.txt从文件安装依赖pip install -r requirements.txt # 批量安装对应版本的软件包国内用户可使用镜像源加速pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple指定 Python 版本创建环境若系统安装了多个 Python 版本如 3.8, 3.9, 3.10可指定解释器使用 Python 3.8 创建环境python3.8 -m venv .venv38激活环境source .venv38/bin/activate检查版本python --version # 输出: Python 3.8.x继承系统包 (System Site Packages)默认情况下虚拟环境无法访问全局安装的包。如果需要例如全局安装了某些难以编译的系统级库可以使用--system-site-packages。默认情况下虚拟环境隔离系统包。若需访问系统已安装的全局包如某些系统工具依赖python3 -m venv --system-site-packages .venv慎用可能破坏隔离性。警告这会破坏环境的纯净性通常不推荐除非明确知道自己在做什么。不带 pip 的环境用于构建极度精简的环境较少见。极简模式手动安装 pippython3 -m venv --without-pip .venv实际场景Django 项目开发# 1. 创建项目目录mkdir my_blog cd my_blog# 2. 创建并激活环境# macOS/Linuxpython3 -m venv .venvsource .venv/bin/activate# Windows CMD# python -m venv .venv# .venv\Scripts\activate.bat# Windows PowerShell# python -m venv .venv# .venv\Scripts\Activate.ps1# 3. 升级 pip (好习惯避免安装旧版包)pip install --upgrade pip# 4. 安装 Djangopip install django4.2# 5. 创建 Django 项目 (注意末尾的 . 表示在当前目录)django-admin startproject config .# 6. 【可选】创建第一个 App (这才是开发步骤而不是重复 startproject)python manage.py startapp blog# 7. 开发阶段...# (在此阶段你可能还会安装其他包例如: pip install Pillow)# echo Hello World blog/views.py (模拟写代码)# 8. 开发完成后统一导出所有依赖 (覆盖之前的记录)pip freeze requirements.txt# 9. 运行开发服务器测试python manage.py runserver# 10. 完成工作退出环境deactivate# # 同事协作场景 (拉取代码后)# # 同事只需运行git clone 你的仓库地址cd my_blog# 1. 创建环境python3 -m venv .venv# 2. 激活环境source .venv/bin/activate # Windows 对应用户的命令# 3. 一键还原所有依赖 (包括 Django 和你后来加的 Pillow 等)pip install -r requirements.txt# 4. 运行python manage.py runserver实际场景数据科学环境# 创建专门用于数据分析的环境python3 -m venv data-envsource data-env/bin/activate# 安装重型科学计算库pip install numpy pandas scikit-learn matplotlib jupyter# 启动 Jupyter Notebookjupyter notebookIDE 集成 (VS Code / PyCharm)S Code: 打开项目后右下角点击 Python 版本号选择.venv/bin/pythonIDE 会自动识别并使用该环境进行 linting 和调试。PyCharm: 新建项目时直接选择 “New environment using Virtualenv”IDE 会自动处理创建和激活过程。
返回列表