我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
首先我们需要了解一下系统解释器
系统解释器
D:\Python39
目录下D:\Python39
- python.exe
- Scripts
- pip.exe
- pip3.exe
- pip3.9.exe
- Lib
- random.py
- re.py
- json.py
- site-packages
- requests.py
D:\Python38
- python.exe
- Scripts
- pip.exe
- pip3.exe
- pip3.8.exe
- Lib
- random.py
- re.py
- json.py
- site-packages
- requests.py
# ----------------------------------------
D:\Python39
- python.exe
- Scripts
- pip.exe
- pip3.exe
- pip3.9.exe
- Lib
- random.py
- re.py
- json.py
- site-packages
- requests.py
# ----------------------------------------
D:\Python310
- python.exe
- Scripts
- pip.exe
- pip3.exe
- pip3.10.exe
- Lib
- random.py
- re.py
- json.py
- site-packages
- requests.py
D:\Python39
D:\Python39\Scripts\
D:\Python39
路径来找到 python.exe
pip install
安装第三方模块D:\Python39\Scripts\
路径来找到 pip.exe
# 安装2.1版本的requests
pip install requests==2.1
# 安装0.9版本的flask
pip install flask==0.9
# 安装2.9版本的bs4
pip install bs4==2.9
...
Lib >> site-packages
目录下了1. >>> 写代码
2. >>> 通过系统解释器直接运行
# 安装1.3版本的requests
pip install requests==1.3
E:\Projecs\PyQt5\venv
- python.exe
- Scripts
- pip.exe
- Lib
- site-packages
我们的项目结构如下:
当我们需要安装第三方模块到这个目录下时,需要执行以下语句
E:\Projecs\PyQt5\venv\Scripts\pip.exe install pyqt5
我们的项目结构如下:
当我们需要安装第三方模块到这个目录下时,需要执行以下语句
E:\Projecs\ArtCopy\venv\Scripts\pip.exe install cx-Oracle==8.3.0
新建项目
配置虚拟环境
配置完成后,项目目录如下
环境已经有了,那么我们写一句简单的代码运行一下
print('Holle World!')
程序运行命令
E:\Projecs\pro001\.venv\Scripts\python.exe E:/Projecs/pro001/demo.py
# 通过 E:\Projecs\pro001\.venv\Scripts\ 目录下的 python.exe 解释器,
# 编译 E:/Projecs/pro001/ 目录下的 demo.py 文件
安装第三方模块
E:\Projecs\pro001\.venv\Scripts\pip install requests==2.1
PyCharm自动激活虚拟环境(进入到虚拟环境目录下)
自动激活前提:项目和虚拟环境进行了绑定
PyCharm —— Terminal
注意:windows系统有Windows PowerShell 和 Cmd两种命令行程序。
Windows系统中,PyCharm默认使用的是Windows PowerShell,需要修改为CMD命令行程序
Windows PowerShell命令行程序无法激活虚拟环境
修改之前,无法激活虚拟环境
修改命令行程序:
File —— Settings... —— Tools —— Terminal —— Shell path —— 选择CMD
修改之后,重新打开项目:成功激活虚拟环境
安装第三方模块
pip install requests==2.1
修改安装源
清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/
豆瓣源:http://pypi.douban.com/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学:http://pypi.hustunique.com/
腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/
File —> settings —> Project:PycharmProjects —> Python Interpreter —>点击加号 —> 左下角 Manager Repositories —— 点-删除官方源,点+增加国内镜像源
第三方包收集和安装
当项目开发完毕之后,要把项目发给小明。小明需要运行
我们发送项目的时候,不要把venv文件(虚拟环境)发送给小明
因为我们的虚拟环境,是基于我们的系统解释器虚拟出来的
小明的系统解释器目录和我的可能不一样,就会导致虚拟环境无法使用
那么,小明怎么知道项目中所用到的第三方模块和对应的版本呢?
此时,我们就需要将第三方模块和版本进行收集
1. 激活虚拟环境
2. 执行 pip freeze > requirements.txt
# 把当前激活的虚拟环境下,所有已经安装的第三方模块全部收集起来,记录在requirements.txt文件中
小明运行程序的时候需要安装项目所需要的第三方模块
打开项目:Open
提示我们创建虚拟环境
文件requirements.txt包含项目依赖项。您想要使用它创建一个虚拟环境吗
这样,虚拟环境就自动配置好了,并且所需要的第三方模块也全部自动下载安装好了
如果上面的创建虚拟环境被我们直接关闭了,那我们就需要手动添加虚拟环境并安装第三发模块
手动添加虚拟环境
File —— Settings... —— Project: xxxx —— Python Interpreter —— 右侧设置,Add —— 设置虚拟环境目录和基于系统解释器
根据requirements.txt文件安装第三方模块
pip install -r requirements.txt
File —— Settings... —— Project: xxxx —— Python Interpreter —— 右侧 Python Interpreter
系统解释器文档
项目基于python 3.9 开发
pip install virtualenv
# 需要将virtualenv库装在哪个python环境,就将cmd切换目录到python安装路径下的Scripts目录
# 如:
# cd D:\Python\Python39\Scripts
# pip install virtualenv
virtualenv -p python解释器路径 env_name
# -p python解释器路径 # 虚拟环境使用指定版本的python解释器
# 例:virtualenv -p D:\Python\Python39\python.exe env
# --system-site-packages # 指定虚拟环境继承系统的三方库
# 添加这个参数:检索库的时候,在当前虚拟环境找不到,会到系统的三方库中查找
# 不加这个参数:检索库的时候,只会在当前的虚拟环境中查找
# 例:virtualenv --system-site-packages env
# 注意:通过系统python环境创建虚拟环境的时候,并不会将系统python环境中安装的第三方库安装到虚拟环境中
1、创建项目文件夹
2、cmd命令行工具,进入到项目文件夹
3、执行命令:
virtualenv env_name
# 如:virtualenv env
# cmd命令行工具,进入到虚拟环境下的Scripts目录
# 执行命令:
activate 或者 activate.bat
# 执行之后,可以看到cmd命令工具中的路径前面多了一个标识:(env_name)
# 例:(env) C:\Users\Administrator\Desktop\MyPro02\env\Scripts>
# 此时,就是进入到了虚拟环境中,接下来所有的操作都是在当前虚拟环境中
pip install requests
# 如果不激活创建的虚拟环境,库会被安装到全局环境;
# 激活虚拟环境后,则会安装在虚拟环境中
python test.py
# 使用虚拟环境中的python解释器执行test.py文件
# 如果test.py文件中导入了某个包,会优先到虚拟环境中去查找相关的包
# cmd命令行工具,进入到虚拟环境下的Scripts目录
# 执行命令
deactivate 或者 deactivate.bat
# 退出虚拟环境之后,cmd命令工具中的路径前面的标识(env_name)会消失
直接删除虚拟环境整个文件夹目录
# 方案1:
# 连同虚拟环境和项目一起拷贝给别人
# 方案2
# 在虚拟环境中,冻结依赖需求文本
pip freeze > requirements.txt
# 把项目和依赖需求文本发给别人
# 别人自己创建虚拟环境,根据依赖需求文本安装相关库
pip install -r requirements.txt
pip install virtualenvwrapper-win
# 打开cmd命令行工具
# 执行命令
mkvirtualenv env_name
# 将虚拟环境创建在特定的文件中(windows系统,默认在用户目录的Envs文件夹中。如:C:\Users\Administrator\Envs)
# 虚拟环境创建完成之后,会自动激活当前新建的虚拟环境
# 示例:
# mkvirtualenv fzenv1
# mkvirtualenv fzenv2
# mkvirtualenv fzenv3
# 打开cmd命令行工具
# 执行命令
lsvirtualenv # 本质是执行 dir /b /ad "C:\Users\Administrator\Envs" 命令
# 打开cmd命令行工具
# 执行命令
workon env_name
# 示例
# workon fzenv1
# workon fzenv2
# 在激活虚拟环境前提下
# 执行命令
deactivate
# 打开cmd命令行工具
# 执行命令
rmvirtualenv env_name
# 示例
# rmvirtualenv fzenv1
pip freeze > requirements.txt
手动更新记录,容易造成更新不及时pip install pipenv
# 查看版本:pipenv --version
pipenv [OPTIONS] COMMAND [ARGS]...
# 参数说明
# --where # 显示项目文件所在路径
# --venv # 显示虚拟环境下实际文件所在路径
# --py # 显示虚拟环境下Python解释器所在路径
# --envs # 显示虚拟环境的选项变量
# --rm # 删除虚拟环境
# --man # 显示帮助页面
# --three / --two # 使用Python 3或Python 2创建虚拟环境
# --site-packages # 附带安装原Python解释器中的第三方工具包
# --version # 显示版本信息
# -h, --help # 显示帮助信息
# 常用命令
# install # 创建虚拟环境或者安装第三方工具
# shell # 进入虚拟环境
# uninstall # 卸载一个三方库
# update # 卸载当前所有的三方库,并安装它们的最新版本
# open # 在编辑器中查看一个三方库
# lock # 锁定并生成Pipfile.lock文件
# run # 在虚拟环境中执行命令
# check # 检查安全漏洞
# graph # 显示当前依赖关系图信息
# 打开cmd命令行工具,进入项目目录
# 执行命令
pipenv install [--python python解释器路径]
# 不指定--python参数,则用系统默认python解释器创建虚拟环境
# 将虚拟环境创建在特定的文件中(windows系统,默认在用户目录的.virtualenvs文件夹中。如:C:\Users\Administrator\.virtualenvs)
# 示例
# pipenv install
# 使用系统默认版本python解释器创建虚拟环境
# pipenv install --python D:\Python\Python39\python.exe
# 使用指定版本python解释器创建虚拟环境
#
# 打开cmd命令行工具,进入项目目录
# 执行命令
pipenv shell
# 注意:shell是激活当前项目的虚拟环境,所以必须先进入到指定项目的目录
# 激活之后,可以看到cmd命令工具中的路径前面多了一个标识:(env_name)
# 打开cmd命令行工具,进入项目目录
# 执行命令
# 执行代码
python xxx.py
# 安装三方库
pipenv install 包名
# 添加--skip-lock 可以跳过lock步骤
pipenv install 包名 --skip-lock
# 等最后再使用pipenv lock统一执行lock操作
# 注意:pipenv install执行
# 1、检测当前项目对应的虚拟环境是否存在,不存在则创建虚拟环境
# 2、在虚拟环境中安装指定的三方库,如果没有指定则只创建虚拟环境不安装三方库(pipenv install)
# 3、在项目目录下,通过pipfile和pipfile.lock记录当下已经安装的三方库
# 注意:在虚拟环境中,通过pip install也能安装三方库,但是不会更新pipfile和pipfile.lock文件
# 查看包依赖结构
pipenv graph
# 卸载包
pipenv uninstall 包名
# 在激活虚拟环境前提下
# 执行命令
exit
# 打开cmd命令行工具,进入项目目录
# 执行命令
pipenv --rm
# 使用 pipfile和Pipfile.lock 文件
# 1、生成/更新Pipfile.lock文件
pipenv lock # 把当前环境的模块锁定,执行命令后它会更新 Pipfile.lock 文件
# 2、把代码文件、Pipfile 文件和 Pipfile.lock 文件 发给别人
# 3、别人创建项目目录,将代码文件、Pipfile 文件和 Pipfile.lock 文件存放到项目目录
# 创建虚拟环境,同时会自动识别Pipfile和Pipfile.lock文件安装项目依赖的所有三方库
# 打开cmd命令行工具,进入项目目录
# 执行命令
pipenv install
# 生产环境的依赖导出
pipenv requirements > requirements-pro.txt
# 生产环境+开发环境的依赖导出
pipenv requirements --dev > requirements.txt
# 开发环境的依赖导出
pipenv requirements --dev-only > requirements-dev.txt
# 将Pipfile文件和Pipfile.lock文件里面的包名导出到requirements.txt文件
pipenv lock -r > requirements.txt
# 通过requirements.txt安装依赖
pipenv install -r requirements.txt
# 主要用来配置包的下载网址
[[source]]
# 指定包的安装镜像源,一般使用国内的镜像来加快下载速度
url = "https://mirrors.aliyun.com/pypi/simple/"
verify_ssl = true
name = "pypi"
# 项目运行所需要依赖的第三方工具,即下载安装的工具包
[packages]
flask-authz ==='2.4.0'
# * 表示安装最新稳定版本
flask = '*'
# 开发依赖的工具包
[dev-packages]
# 开发环境需要的包,不常用
# Python 解释器配置
[requires]
# 指定Python解释器的版本
python_version = "3.9"
conda支持Python、R、Java、JavaScript、C等多种开发语言的包、依赖和环境管理工具,能运行在Windows、MacOS、Linux多个平台,可以在本地轻松创建、保存、切换环境。当安装anaconda时,会自动安装conda工具。
conda与pipenv,venv等虚拟环境管理工具的最大的不同在于:
安装管理工具
# TUNA 还提供了 Anaconda 仓库与第三方源的镜像,各系统都可以通过修改用户目录下的 .condarc 文件来使用 TUNA 镜像源。
# Windows 用户无法直接创建名为 .condarc 的文件,可先通过Anaconda Prompt执行以下生成.condarc文件之后再修改
conda config --set show_channel_urls yes
# 生成的.condarc文件在在用户目录的.conda目录下
# 使用记事本打开.condarc文件,粘贴下面的代码即可修改安装源
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
# 运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引
启动Anaconda
Anaconda常用命令
conda -V # 查看版本
conda create -n env_name python=3.9 # 创建python虚拟环境(指定python版本)
conda create -n env_name2 --clone env_name1 # 克隆虚拟环境
conda create -n env_name python=3.9 包名=x.x # 创建虚拟环境的同时安装指定版本的三方库
conda install 包名 # 在base环境中安装包
conda install -n env_name 包名 # 在指定虚拟环境安装包
activate env_name # 激活虚拟环境,Linux系统前面要加source
conda remove -n env_name --all # 移除虚拟环境及所有包
conda remove env_name 包名 # 移除指定虚拟环境中的某个包
conda env list # 查看虚拟环境列表
conda list # 查看base环境包列表
创建虚拟环境
conda create --name env_name python[==3.6]
conda create -n env_name python[==3.6]
# 最后python不指定版本,会指定最新版本创建虚拟环境
# 将虚拟环境创建在特定的文件中(windows系统,默认在用户目录的.conda\envs文件夹中。如:C:\Users\XieFeng\.conda\envs)
查看conda版本
conda -V
更新conda版本
conda update conda
查看所有虚拟环境列表
conda env list
切换/激活虚拟环境
conda activate env_name
操作虚拟环境
# 安装三方库
conda install 包名
# 查看三方库版本
conda search 包名
# 卸载三方库
conda remove 包名
# 会自动卸载依赖包
查看虚拟环境下安装的所有包列表
conda list
退出虚拟环境
conda deactivate
删除虚拟环境
conda remove -n env_name --all
# 删除虚拟环境及其内部安装的所有包
项目交接1:通过.yml环境文件
# 使用conda-pack或conda env export等工具生成.yml环境文件
# 1、生成/更新.yml文件
conda env export > env_name.yml # 把当前环境的模块锁定,执行命令后它会更新 .yml文件
# 2、把代码文件和.yml文件发给别人
# 3、别人创建项目目录,将代码文件和.yml文件存放到项目目录
# 通过.yml文件创建虚拟环境,会自动安装项目依赖的所有三方库
# 打开cmd命令行工具,进入项目目录
# 执行命令
conda env create -f env_name.yml
项目交接2:通过requirements.txt文件
# conda 批量导出包含环境中所有组件的requirements.txt文件
conda list -e > requirements.txt
# 通过运行以下命令来安装requirements.txt文件中列出的所有依赖项
conda install --yes --file requirements.txt
# 这种执行方式,一遇到安装不上就整体停止不会继续下面的包安装
# 但是这里存在一个问题,如果requirements.txt中的包不可用,则会抛出“无包错误”。
# 使用下面这个命令可以解决这个问题
$ while read requirement; do conda install --yes $requirement; done < requirements.txt
# 或者这样也行
FOR /F "delims=~" %f in (requirements.txt) DO conda install --yes "%f"
# 这个执行能解决上面出现的不执行后续包的问题
# 如果想要在conda命令无效时使用pip命令来代替,那么使用如下命令:
$ while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt