在开发过程中,往往同一台电脑要开发不同的项目,不同的项目可能需要不同版本的包,为了解决这个问题就引出了虚拟环境。

配置虚拟环境:

1.安装虚拟环境:

sudo pip3 install virtualenv  

2.安装虚拟环境扩展包:

sudo pip3 install virtualenvwrapper

3.修改用户家目录下的配置文件.bashrc,添加如下内容:

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

4.使用source .bashrc命令使配置文件生效。

此时可能会出现这样的错误:

/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.

系统默认用的是python2的解释器,这就需要我们将python3的解释器添加到环境变量:

4.1打开系统环境变量文件:

vi /etc/profile

4.2添加python3:

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

4.3使用source /etc/profile命令使配置文件生效。

4.4再次执行source .bashrc命令使配置文件生效。

5.创建python3虚拟环境的命令如下:

mkvirtualenv -p python3 虚拟环境名称
  • 创建成功后,会自动工作在这个虚拟环境上。
  • 创建虚拟环境需要联网。
  • 工作在虚拟环境上,提示符最前面会出现"(虚拟环境名称)"。
  • 所有的虚拟环境,都位于/home/python/下的隐藏目录.virtualenvs下。

6.可以将之前用过的完整项目需要的包完全导过来进行安装:

6.1先将之前项目中的安装包倒入到一个文件夹中:

pip freeze > package.txt

6.2切换到刚才新创建好的虚拟环境中,安装package.txt中的包:

pip install -r ./package.txt   # 将package.txt放到了家目录下,并且系统也切换到了家目录下。

此时可能会出现这样的情况:

出现红色字体,然后就停止了安装。解决办法:观察红色字体描述的是哪个包安装出现了问题,换个版本号或者直接注释掉,等全部安装完再单独安装这个包。

当最后出现这几行,就说明全部安装成功:

6.3 cd .virtualenvs/django_py3/lib/python3.5/site-packages/ 可以查看刚才安装的所有的包:

7.退出虚拟环境的命令如下:

deactivate

8.删除虚拟环境的命令如下:

rmvirtualenv 虚拟环境名称

9.查看虚拟环境命令:workon tab键两下

10.进入虚拟环境命令:workon 虚拟环境名称

python框架之虚拟环境的配置的更多相关文章

  1. python为何需要虚拟环境--Python虚拟环境的安装和配置-virtualenv

    一 虚拟环境 virtual environment 它是一个虚拟化,从电脑独立开辟出来的环境.通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容 ...

  2. Python虚拟环境的配置

    Python中,配置虚拟环境主要是为了防止版本之间的冲突,我是这么理解的: 1.用虚拟环境可以在一个电脑中使用多个Python解释器以及扩展: 2.可以方便的在同一台电脑中使用多个版本的代码. 虚拟环 ...

  3. Python的Django框架中的URL配置与松耦合

    Python的Django框架中的URL配置与松耦合 用 python 处理一个文本时,想要删除其中中某一行,常规的思路是先把文件读入内存,在内存中修改后再写入源文件. 但如果要处理一个很大的文本,比 ...

  4. python虚拟环境的配置-ubuntu 18.04后

    python虚拟环境的配置 安装相关包 pip install virtualenv pip install virtualenvwrapper 配置~/.bashrc 加入以下内容: ------- ...

  5. python框架之django

    python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django temple django models ...

  6. 第六篇:web之python框架之django

    python框架之django   python框架之django 本节内容 web框架 mvc和mtv模式 django流程和命令 django URL django views django te ...

  7. Hadoop的Python框架指南

    http://www.oschina.NET/translate/a-guide-to-Python-frameworks-for-Hadoop 最近,我加入了Cloudera,在这之前,我在计算生物 ...

  8. PythonWeb框架Django:虚拟环境安装(virtualenv)

    虚拟环境的用处: 当我们有多个项目要使用不同的第三方类库的时候,就会发生冲突,因为Python的环境内只允许一个版本的第三方类库. 比如说 有A,B两个Web项目,但是A项目的Django的环境为2. ...

  9. ubuntu python 安装使用虚拟环境 virtualenv

    1,虚拟环境是干啥用的? 我在电脑上装了cuda,显卡驱动,cudnn等一堆配套文件,然后又依赖于cuda和驱动安装了tensorflow2.0的gpu测试版,不知为何,我每次跑完tf2程序电脑都会卡 ...

随机推荐

  1. [luoguP1631] 序列合并(堆 || 优先队列)

    传送门 首先,把A和B两个序列分别从小到大排序,变成两个有序队列.这样,从A和B中各任取一个数相加得到N2个和,可以把这些和看成形成了n个有序表/队列: A[1]+B[1] <= A[1]+B[ ...

  2. 墨卡托坐标与LBS应用

    今天了解到这边的LBS应用,一般用的是墨卡托坐标. 也就是商品库的商品入库的时候,会根据输入,使用百度地图提供的一个API,来转换成一个墨卡托坐标. 然后用户流量过来的时候,会带来历史坐标,和当前坐标 ...

  3. IOS开发之block应用

    非常长时间都是在学习各位大神的力作,并汲取了不少养料,在此一并谢过各位大神了. 当然了.好东西是要跟大家一起分享的,近期发现了几个很不错的个人网站,都是介绍IOS开发的.当中有唐巧.破船之长.池建强. ...

  4. ios block 内存管理时使用注意

    XMGStudent *stu = [[XMGStudent alloc] init]; __weak XMGStudent *weakStu = stu; stu.block = ^{ NSLog( ...

  5. MICRO SIM卡(SIM小卡)尺寸图及剪卡图解

    如今使用MICRO SIM卡的手机越来越多.近期刚刚买了一个手机到手才发现尼马使用的是MICRO SIM卡.再去买剪卡器吧,十几二十块用一次就废了,去营业厅吧.又比較远,懒的出门.怎么办呢,自己剪!这 ...

  6. phpstorm安装和调试

    首先: phpstorm是用JAVA开发的,所以在安装之前须要先安装jdk sudo apt-get install default-jdk 从官网上下载phpstorm 的linux版本号 http ...

  7. Tcl学习之--命名空间

    Tcl解释器将全部的命令和全局变量分组管理.这些小组称为命名空间,一个命名空间中的命令和变量不会影响到还有一个命名空间.这些命名空间呈树形组织.一个命名空间的命令能够被还有一个命名空间引入.命名空间树 ...

  8. Android与IOS异同点对照(1)------ 显示

    Android与IOS作为当前世界上最流行的两大移动端操作系统,都拥有无数的粉丝. 那么对于Android或者IOS的开发人员来说,这两个系统都拥有什么同样或者不同的地方那?如今让我们一起来了解一下A ...

  9. mac 下安装Anaconda Python

    # 将anaconda的bin目录加入PATH echo 'export PATH="/Users/work/anaconda/bin/:$PATH"' >> ~/.b ...

  10. C++中switch 语句中的变量声明和

    switch 内部的变量定义: ; switch(i) { : string str; //error ; //error int val2; //right ; //right : val2 = ; ...