Windows与Linux环境下搭建虚拟环境(virtualenv、virtualenvwrapper)

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 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容