Python学习笔记
Posted 阿远ay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记相关的知识,希望对你有一定的参考价值。
Python虚拟环境
前言
Python 应用经常需要使用一些包第三方包或者模块,有时需要依赖特定的包或者库的版本,所以不能有一个能适应所有 Python 应用的软件环境,很多时候不同的 Python 应用所依赖的版本是冲突的,满足了其中一个,另一个则无法运行,解决这一问题的方法是 虚拟环境。虚拟环境是一个包含了特定 Python 解析器以及一些软件包的自包含目录,不同的应用程序可以使用不同的虚拟环境,从而解决了依赖冲突问题,而且虚拟环境中只需要安装应用相关的包或者模块,可以给部署提供便利。
一、conda版(默认已安装Anaconda)
①创建虚拟环境
在开始菜单的所有程序中,选择Anaconda,点击Anaconda Prompt,打开Anaconda的命令行界面,使用conda创建Python虚拟环境的语法格式如下:
conda create -n your_env_name python=x.x
例:conda create -n dataprocess python=3.8
上述代码利用conda命令创建python版本为x.x,名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envcs文件下找到。
②激活虚拟环境
window:activate your_env_name
linux: source activate your_env_name
例:windows:activate dataprocess
linux:source activate dataprocess
③退出虚拟环境
window:deactivate
linux: source deactivate
④删除虚拟环境
conda remove -n your_env_name --all
例:conda remove -n dataprocess --all
⑤其他指令
(1)列出系统存在虚拟环境
conda info -e
conda env list
(2)查看当前环境下已安装的包
conda list
(3)查看某个指定环境的已安装包
conda list -n your_env_name
(4)查找package信息
conda search numpy
(5)安装package
conda install -n venv numpy
#如果不用-n指定环境名称,则被安装在当前激活环境
#也可以通过-c指定通过某个channel安装
(6) 更新package
conda update -n venv numpy
(7)删除package
conda remove -n venv numpy
(8)安装Jupter Lab:
conda install -c conda-forge jupyterlab
#conda-forge是一个包含很多软件包的库,默认是直接使用anaconda库。
(9)运行:
jupyter lab
二、virtualenv版
virtualenv 是目前最流行的 Python 虚拟环境配置工具。它不仅同时支持 Python2 和 Python3,而且可以
为每个虚拟环境指定 Python 解释器,并选择不继承基础版本的包。
优势:
- 使得不同Python应用的开发环境相互独立
- 开发环境升级不影响其他应用的开发环境,也不会影响全局的环境(默认开发环境是全局开发环境),因为虚拟环境是将全局环境进行私有的复制,当我在虚拟环境进行 pip install 时,只会安装到选择的虚拟环境中。
- 防止系统中出现包管理混乱和版本的冲突
①安装virtualenv
pip install virtualenv
②创建虚拟环境
virtualenv your_env_name (名字为your_env_name的虚拟环境。)
例:virtualenv dataprocess
#如果不想使用系统python环境的包,加上–no-site-packeages参数
virtualenv --no-site-packages 创建路径名
(如果有多个python版本,可以通过命令:virtualenv -p python路径 环境名,来创建虚拟环境)
③激活虚拟环境
进入虚拟环境目录的Scripts文件夹下
windows: cd dataprocess
.\\Scripts\\activate.bat
linux: cd dataprocess
source ./bin/activate
④退出虚拟环境
deactivate
⑤删除虚拟环境
没有使用virtualenvwrapper前,可以直接删除venv文件夹来删除环境
⑥使用环境
进入环境后,一切操作和正常使用python一样 安装包使用pip install 包
例:pip install django==2.0
三、Virtualenvwrapper版
Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做: - 将所有虚拟环境整合在一个目录下 - 管理(新增,删除,复制)虚拟环境 - 快速切换虚拟环境。
①安装Virtualenvwrapper
windows:pip install virtualenvwrapper-win
linux:$ sudo easy_install virtualenvwrapper (默认安装在 /usr/local/bin下面)
接下来创建一个文件夹,用来存放所有的虚拟环境:
$ mkdir ~/workspaces
$ cd ~/workspaces
先用
which virtualenvwrapper.sh
which python3
这个命令找到正确路径
然后用
vi ~/.bash_profile 进入
输入
export WORKON_HOME=’~/.virtualenvs’
export VIRTUALENVWRAPPER_PYTHON=’/Users/mac/anaconda/bin/python3’
source /Users/mac/anaconda/bin/virtualenvwrapper.sh
esc退出后:wq进行保存
再运行这个命令 source ~/.bash_profile
centos: 确认pip:whereis pip3
pip3 install virtualenv
安装virtualenvwrapper,为避免超时错误,设置一个超时时间:
pip3 install virtualenvwrapper --default-timeout=1000
pip3 list
3.配置环境变量,增加最后两行
查找virtualenvwrapper所在的路径(记得加.sh要不然查到出来的路径不正确)
[root@localhost ~]# whereis virtualenvwrapper.sh
virtualenvwrapper: /usr/local/bin/virtualenvwrapper.sh
加到~/.bashrc 里面
vim ~/.bashrc
export WORKON_HOME=/root/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
执行:source ~/.bashrc
如果报错:
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.7 and that PATH is
set properly.
解决:
[finance@finance-06 ~]$ whereis virtualenvwrapper.sh
virtualenvwrapper: /usr/local/python/python3/bin/virtualenvwrapper.sh
[finance@finance-06 ~]$ sudo vim /usr/local/python/python3/bin/virtualenvwrapper.sh
修改后,再source ~/.bashrc
macOS:~/.bash_profile
export WORKON_HOME=’~/myenv’
source /usr/local/bin/virtualenvwrapper.sh
source ~/.bash_profile
macOS / Linux:
pip install --user virtualenvwrapper
#then make Bash load virtualenvwrapper automatically
echo “source virtualenvwrapper.sh” >> ~/.bashrc
source ~/.bashrc
②创建虚拟环境
windows:mkvirtualenv your_env_name / mkvirtualenv --python=python3.6 venv
与直接用virtualenv创建不同的是,前面那个是在当前文件夹下创建虚拟环境,而这个是统一在当前用户的envs文件夹下创建,并且会自动进入到该虚拟环境下
如果不想在默认地方创建(c:\\user\\envs),
可以新建个环境变量:WORKON_HOME,然后里面设置默认路径
如果要指定python版本,则输入:mkvirtualenv --python=python路径(到exe文件) 环境名
macOS/linux:
mkvirtualenv --python=python3.6 venv
③激活虚拟环境
workon #列出虚拟环境列表
workon your_env_name #切换环境
④退出虚拟环境
deactivate
⑤删除虚拟环境
rmvirtualenv your_env_name
⑥其他指令
pip freeze #查看当前安装库版本
#创建 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表
#保持部署相同,一键安装所有包
pip install -r requirements.txt
pip freeze > requirements.txt
lsvirtualenv #列举所有的环境
cdvirtualenv #导航到当前激活的虚拟环境的目录中,相当于pushd 目录
cdsitepackages # 和上面的类似,直接进入到 site-packages 目录
lssitepackages #显示 site-packages 目录中的内容
四、pipenv版
pipenv是Python官方推荐的包管理工具。pipenv集成了pip,virtualenv两者的功能,且完善了两者的一些缺陷。 pipenv使用 Pipfile 和 Pipfile.lock 来管理依赖包,并且在使用pipenv添加或删除包时,自动维护 Pipfile 文件,同时生成 Pipfile.lock 来锁定安装包的版本和依赖信息,避免构建错误。
①安装pipenv
pip install pipenv
②创建虚拟环境
pipenv --three # 使用当前系统中的Python3 创建环境
pipenv --python 3 # 指定使用Python3创建环境
pipenv --python 3.6 # 指定使用Python3.6创建环境
pipenv --python 2.7.14 # 指定使用Python2.7.14创建环境
每次创建环境都会在当前目录下生成一个名为Pipfile文件,用来记录刚创建的环境信息,如果当前目录下之前存在该文件,会将其覆盖。
③激活虚拟环境
pipenv shell
④退出虚拟环境
exit
⑤删除虚拟环境
pipenv --rm
⑥其他指令
pipenv --where # 显示目录信息
pipenv --venv # 显示虚拟环境信息
pipenv --py # 显示Python解释器信息
pipenv install XXX # 安装XXX模块并加入到Pipfile
pipenv graph # 查看目前安装的库及其依赖
pipenv check # 检查安全漏洞
pipenv update --outdated # 查看所有需要更新的依赖项
pipenv update # 更新所有包的依赖项
pipenv update <包名> # 更新指定的包的依赖项
pipenv uninstall XXX # 卸载XXX模块并从Pipfile中移除
pipenv uninstall --all # 卸载全部包并从Pipfile中移除
pipenv uninstall --all-dev # 卸载全部开发包并从Pipfile中移除
生成requirements.txt 文件:
pipenv lock -r > requirements.txt # 将Pipfile和Pipfile.lock文件里面的包导出为>requirements.txt文件
pipenv lock -r --dev > requirements.txt # 将Pipfile和Pipfile.lock文件里面的开发包导出为>requirements.txt文件
#pipenv通过requirements.txt安装包:
pipenv install -r requirements.txt
pipenv install -r --dev requirements.txt # 只安装开发包
(1)pipenv run python xxx.py ##运行python文件
(2)python xxx.py ##激活环境中运行
以上是关于Python学习笔记的主要内容,如果未能解决你的问题,请参考以下文章