网站引流是什么意思,江门关键词排名工具,宣传型商务网站,商务网站建设实验书什么是环境既然有所谓的 虚拟环境#xff08;Virtual Environment#xff09;#xff0c;那么首先有必要解释一下#xff0c;什么是环境。这里的环境#xff0c;指的就是 Python 代码的运行环境。它应该包含以下信息#xff1a;Python 解释器#xff0c;用哪个解释器来执…什么是环境既然有所谓的 虚拟环境Virtual Environment那么首先有必要解释一下什么是环境。这里的环境指的就是 Python 代码的运行环境。它应该包含以下信息Python 解释器用哪个解释器来执行代码Python 库的位置该去哪里 import 所需要的模块呢可执行程序的位置比如说安装了 pip那么 pip 命令是在哪里呢其中第 1 个是最主要的后面 2 个基本是围绕它确定的。如果看了我在 安装 Python 详解 里对安装后的文件夹的说明应该很清楚了就是python.exeLib 文件夹包括其中的 site-packagesScripts 文件夹sys.path当我们说包的路径就在 Lib 和 site-packages 文件夹里的时候虽然大多数的情况下就是这样的但是实际上并不准确。包的搜寻路径是通过 Python 系统中的一个变量决定的也就是 sys.path我们先来打印一下看看 import sysfrom pprint import pprintpprint(sys.path)
[, # 注意别忽视了第 1 个C:UsersDavyAppDataLocalProgramsPythonPython38python38.zip,C:UsersDavyAppDataLocalProgramsPythonPython38DLLs,C:UsersDavyAppDataLocalProgramsPythonPython38lib,C:UsersDavyAppDataLocalProgramsPythonPython38,C:UsersDavyAppDataRoamingPythonPython38site-packages,C:UsersDavyAppDataLocalProgramsPythonPython38libsite-packages]
“ pprint 是内置的 pretty-print 模块可以自动换行让打印结果好看一点。注意第 1 项是一个空字符串它代表的是当前路径也就是你启动程序的地方。比如说我们默认情况下进入命令行就自动进入到当前用户的目录例如 C:UsersDavy那么当前目录就是这个。如果你还感到疑惑可以用下面的语句打印出绝对路径 import os.pathos.path.abspath()
C:UsersDavy除了第一项这个列表里最常用的就是最后一项这个在 Python 安装详解 中有过说明。什么是虚拟环境知道了什么是环境再来理解什么是虚拟环境就非常容易了。简而言之虚拟环境就是 Python 环境的一个副本。要得到这么一个副本首先要给它单独找个文件夹存起来要给它取个名字这个文件夹的名字也就是这个虚拟环境的名字在这个文件夹下面有这些东西一个 python.exe一个 Scripts 目录一个 Lib 目录这里和普通环境有 2 点不一样的地方python.exe 也放在了 Scripts 目录下面原因下面会讲Lib 目录下面只有 site-packages 目录让我们来试一下。venv 模块在 Python 2.x 的时候创建虚拟环境还需要安装第三方的 virtualenv但是自从 Python 3.3 版本之后标准库里内置了 venv 模块可以用来创建虚拟环境。在命令行中使用下面的命令来快速创建一个虚拟环境C:UsersDavypython -m venv venvdemo上面的命令会在当前目录下新建一个名为 venvdemo 的虚拟环境。里面的文件夹其中 Include 基本不用管Lib 目录下也没什么特别的主要就是 Scripts 目录其中多出了 activate 和 deactivate 用来 激活 和 去激活 虚拟环境。“ activate 有多个后缀的文件适配多个环境敲命令的时候不需要带后缀让我们来激活试试:C:UsersDavyvenvdemoScriptsactivate注意到一点激活的时候我们需要指定 activate 完整的路径因为它所在的目录并不在 PATH 环境变量之中。激活之后我们就进入了虚拟环境这时候不管是执行 python 还是 pip 针对的都是虚拟环境里面的。其实这也没什么神奇的操作激活只不过就是把虚拟环境的 Scripts 目录临时添加到了 PATH 环境变量的第一位。这里也解释了为啥要把 python.exe 也放到了 Scripts 目录下因为这样只需要加一个路径到环境变量中即可。同时这也提醒我们注意不是只有激活才能进入虚拟环境我们如果把当前路径切换到了虚拟环境的 Scripts 目录下启动 python 也是在虚拟环境中了。继续打印一下 sys.path 看看(venvdemo) C:UsersDavypython
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type help, copyright, credits or license for more information.from pprint import pprintimport syspprint(sys.path)
[,C:UsersDavyAppDataLocalProgramsPythonPython38python38.zip,C:UsersDavyAppDataLocalProgramsPythonPython38DLLs,C:UsersDavyAppDataLocalProgramsPythonPython38lib,C:UsersDavyAppDataLocalProgramsPythonPython38,C:UsersDavyvenvdemo,C:UsersDavyvenvdemolibsite-packages]可以看到相对于上面普通的系统环境最下面的两条发生了变化注意其中的第 4 条路径 C:UsersDavyAppDataLocalProgramsPythonPython38lib它正是标准库的路径。我们在执行去激活的时候就不用再指定完整的路径了。为什么要有虚拟环境当我们安装一个 Python 程序或者库的时候一般情况下我们虽然是想要安装 1 个包比如说 pip install django。然而实际安装的都是一堆包。这些包默认都会安装到 Python 环境的 site-packages 目录下面。下次再安装其它包时也是如此。因为同一个库只能在一个环境中存在一份那么这其中如果发现了某个依赖包已经存在只能大家公用。这样下去说不定哪一天这中间就出现了版本不兼容。使用虚拟环境因为虚拟环境的必要性现在大多数的 Python 开发工具都支持虚拟环境的相关操作。具体每个工具有所不同但是一般只需要注意一点即可指定虚拟环境中 python.exe 的位置。一旦确定了它的位置就确定了环境的位置。也就不用每次都去激活。“ 仔细观察虚拟环境中的 python.exe 和系统中的 python.exe 并不完全一样。保存虚拟环境我们知道在使用 pip install 的时候可以通过 -r 选项指定一个 requirements 文件这样就能批量安装所有依赖。在 requirements 里面可以精确的指定安装包版本有效地避免不兼容问题。执行 pip freeze 可以把当前环境安装的包以 requirements 的格式输出。(venvdemo) C:UsersDavypip freeze
asgiref3.2.3
Django3.0.3
pytz2019.3
sqlparse0.3.0把输出结果保存到文件中就可以了这样我们就精确的得到当前环境的版本信息可以再其它地方重建这个环境。“ 文章内容虽基础整理发布不轻松 如果看过有帮助不妨 点赞 关注谢谢