Windows与Linux环境下搭建虚拟环境(virtualen
1)Python虚拟环境是指创建一个隔绝的Python环境,说的再直白一点就是将你的python复制一部分放在你硬盘的拎一个地方,一般在你进行一项具有毁灭性的测试或则你需要一个较少变动的环境时,你会考虑创建一个虚拟环境。
2)我们可以使用virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。但是我们不推荐使用virtualenv,而是推荐virtualenvwrapper,原因很简单,virtualenvwrapper是virtualenv的一个升级版,使用virtualenvwrapper可以更好的快速创建管理虚拟环境。
优点
1) 使不同应用开发环境相互独立
2) 环境升级不影响其他应用,也不会影响全局的python环境
3) 防止出现包管理混乱及包版本冲突
Linux系统环境
安装 virtualenv,建议使用pip3安装到python3环境下
pip3 install -i https://pypi.douban.com/simple virtualenv
通过命令创建虚拟机环境
virtualenv venv #venv为虚拟环境目录名,目录名自定义
virtualenv venv 将会在当前的目录中建立一个venv的文件夹,包含了Python可执行文件,以及 pip 库的一份拷贝,这样就能安装其余包了。
指定Python解释器
# -p参数指定Python解释器
virtualenv -p /usr/bin/python3 venv
激活activate
source ./venv_data01/bin/activate
进入虚拟环境
(venv) [root@master bin]# which pip3
../venv/bin/pip3
(venv) [root@master bin]# pip3 install -i https://pypi.douban.com/simple django==3.2
(venv) [root@master bin]# pip3 list
Package Version
----------------- --------
asgiref 3.4.1
Django 3.2
pip 21.1.3
pytz 2021.1
setuptools 57.1.0
sqlparse 0.4.1
typing-extensions 3.10.0.0
wheel 0.36.2
测试创建项目
(venv) [root@master pythonProJect]# django-admin startproject pythonTest01
(venv) [root@master pythonProJect]# vim pythonTest01/pythonTest01/settings.py
.....
28 ALLOWED_HOSTS = ["*"]
(venv) [root@master pythonProJect]# python3 pythonTest01/manage.py runserver 0.0.0.0:9000
# 直接执行 deactivate命令,退出当前虚拟环境,系统会自动销毁venv的PATH环境
(venv) [root@master pythonProJect]# deactivate
virtualenvwrapper
virtualenvwrapper提供了一系列命令方便与虚拟环境的管理,因此推荐直接使用virtualenvwrapper
# 安装virtualenvwrapper依赖于virtualenv,确保virtualenv安装
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
pip install -i https://pypi.douban.com/simple virtualenvwrapper-win #Windows使用该命令
安装完成后,配置环境变量:
可使用whereis查看virtualenvwrapper.sh的路径:
[root@master virtualenvs]# whereis virtualenvwrapper.sh
virtualenvwrapper: /usr/local/bin/virtualenvwrapper.sh
在 ~/.bash_profile 最后一行添加如下内容:
source /usr/local/bin/virtualenvwrapper.sh
virtrualenvwrapper会安装到python的bin目录下,因此该路径是python安装目录下bin/virtualenvwrapper.sh
# 读入配置文件,当即生效
source ~/.bash_profile
virtualenvwrapper基本使用
可以选择默认目录下的创建 比如:/data/virtualenv 文件夹中建立,也能够经过添加环境变量来指定虚拟环境目录的安装位置。
[root@master virtualenvs]# pwd
/data/virtualenvs
# virtualenvwrapper存放虚拟环境目录
export WORKON_HOME=/data/virtualenv
# 能够不用,可是最好配上,方便后续的迁移
export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/
建立虚拟环境
# venv_py3是虚拟环境名,能够任意指定
mkvirtualenv venv_py3
指定python版本
# 不指定默认就是当前系统下的python2.7
mkvirtualenv -p /usr/bin/python3 venv
查看虚拟环境路径
(venv) [root@master /]# which pip3
/data/virtualenvs/venv/bin/pip3
基本命令
查看虚拟环境目录
workon
切换到虚拟环境
workon venv
退出虚拟环境
deactivate
删除虚拟环境
rmvirtualenv venv
报错ERROR: virtualenvwrapper could not find virtualenv in your path
#出现这种错误,是由于 virtualenv 这个基础依赖包被安装在默认python目录下,就须要作一个软链接 ln -s;
#查找virtualenv的位置
sudo find / -name "virtualenv"
/Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenv
# 最后进行软链接
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenv /usr/local/bin/virtualenv
虚拟环境的迁移:
若是按照上述步骤,进行到此,并无在环境变量中设置虚拟环境目录,那么默认会在下在/data/virtualenv目录中,将其打包迁移至同一目录便可。环境迁移时,最好是两台服务器的环境是一致的,如python安装路径。若是服务器的环境一致,那么如下步骤能够省略:
拷贝迁移至其余服务器下进行解压
tar -xcf venv.tar.gz ~/.virtualenv/venv
进入 /data//virtualenv/venv/bin/ 下修改activate文件中参数
VIRTUAL_ENV="/home/.virtualenv/venv"
export VIRTUAL_ENV
将上述VIRTUAL_ENV修改成当前venv文件夹正确的路径,而后执行
source activate
查看虚拟环境内的python、pip的路径是否虚拟环境内的python和pip,若是不是,那么仍是须要修改其路径
windows环境安装virtualenv
# 建议使用pip3安装到python3环境下
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper-win
# 配置环境变量:
# 控制面板 => 系统和安全 => 系统 => 高级系统设置 => 环境变量 => 系统变量 => 点击新建 => 填入变量名与值
变量名:WORKON_HOME 变量值:自定义存放虚拟环境的绝对路径
eg: WORKON_HOME: D:\Virtualenvs
image.png
创建虚拟空间
- mkvirtualenv test1 创建一个名为 test1 的 virtualenv
使用
# 在终端工作的命令
# 1、创建虚拟环境到配置的WORKON_HOME路径下
# 选取默认Python环境创建虚拟环境:
-- mkvirtualenv 虚拟环境名称
# 基于某Python环境创建虚拟环境:
-- mkvirtualenv -p python2.7 虚拟环境名称
-- mkvirtualenv -p python3.6 虚拟环境名称
# 2、查看已有的虚拟环境
-- workon
# 3、使用某个虚拟环境
-- workon 虚拟环境名称
# 4、进入|退出 该虚拟环境的Python环境
-- python | exit()
# 5、为虚拟环境安装模块
-- pip或pip3 install 模块名
# 6、退出当前虚拟环境
-- deactivate
# 7、删除虚拟环境(删除当前虚拟环境要先退出)
-- rmvirtualenv 虚拟环境名称
pycharm使用
新建项目
image.png添加环境
image.png使用环境
image.png导出依赖包的方法
在windows系统开发环境的项目中,pip3安装了很多的模块,最终该项目才可以运行,比如CRM代码上传到一个新的服务器,是一个空的环境,还需要你在部署一遍,比如CRM代码。
以下是可以解决方案:
# 1、在windows的cmd命令行中,通过此命令导出模块信息
pip3 freeze > requirements.txt
# 2、把此文件发送给Linux机器 或者 直接拷贝其内容,也可以在Linux机器上,安装此文件即可,自动读取文件每一行的模块信息,自动安装
pip3 install -i https://pypi.douban.com/simple -r requirements.txt