Ubuntu系统中创建虚拟环境
1.虚拟环境产生的原因:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.
2.虚拟环境的作用:
(1)虚拟环境
可以搭建独立的python运行环境
, 使得单个项目的运行环境与其它项目互不影响.
(2)所有的虚拟环境
都位于/home/用户名(指的是你电脑上的用户名)【我的Ubuntu系统的用户名叫:python】/
下的隐藏目录.virtualenvs
下
3.安装过程
(1)通过终端命令:
sudo apt install python-virtualenv
sudo apt install virtualenvwrapper
或者通过以下命令(针对于安装了pip的,这种方法没试过,因为我的出错了,使用的是上面的两句代码)
sudo pip install virtualenv
sudo pip install virtualenvwrapper
如果没有报错,基本上就是安装成功了。
注意:执行命令的顺序不能颠倒,原因是virtualenvwrapper是依赖于virtualenv的;这里的virtualenv是虚拟环境,而virtualenvwrapper是对virtualenv的命令进行了封装,更加好用。
(3)创建虚拟环境
在Ubuntu系统中,由于本身自带了python2和pythn3,那么创建就分为不同的。
如果创建python2的虚拟环境:
mkvirtualenv 虚拟环境名称
如:mkvirtualenv python2_test 此时是基于python2的虚拟环境,名称为:python2_test,这个虚拟环境就是保存在/home/用户名/.virtualenvs/下的目录中
如果创建python3的虚拟环境:
mkvirtualenv -p python3 虚拟环境
(4)如果在创建过程中提示找不到virtualenv命令,那么需要如下步骤:
步骤一:在家目录下创建一个.virtualenvs目录(虚拟环境都是放在这里的)
步骤二:打开~/.bashrc文件,在文件中添加下面两句话:(可以使用sudo gedit ~/.bashrc)
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
此时再去创建就可以成功了!
注意:
如果创建不成功可以试试下面的命令:mkvirtualenv -p python路径 虚拟环境名称
python3创建虚拟环境:mkvirtualenv -p /usr/bin/python3 myfirst_python3 4.命令
(1)虚拟环境使用命令:workon 虚拟环境名称
(2)查看虚拟环境命令:workon 两次tab键
(3)退出虚拟环境命令:deactivate
(4)删除虚拟环境命令:rmvirtualenv 虚拟环境命令 使用命令是先退出,再删除
(5)在虚拟环境中安装包:先进入虚拟环境中,然后使用pip install xxx,
(6)查看虚拟环境中安装的包:pip freeze 更新:
错误原因:
Ubuntu安装了2.7和3.x两个版本的python,在安装时使用的是sudo pip3 install virtualenvwrapper
在我运行的时候默认使用的是python2.x,但在python2.x中不存在对应的模块。
(virtualenvwrapper.sh文件内容如下:):
if [ "$VIRTUALENVWRAPPER_PYTHON" = "" ] then
VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi
解决方法:修改virtualenvwrapper.sh文件
1.which virtualenvwrapper.sh找到文件路径
2.在文件路径下sudo vim virtualenvwrapper.sh
3.修改:
if [ "$VIRTUALENVWRAPPER_PYTHON" = "" ] then
VIRTUALENVWRAPPER_PYTHON="$(command \which python3)"
fi
解决
Ubuntu系统中创建虚拟环境的更多相关文章
- ubuntu系统下Python虚拟环境的安装和使用
ubuntu系统下Python虚拟环境的安装和使用 前言:进行python项目开发的时候,由于不同的项目需要使用不同的资源包和相关的配置,因此创建多个python虚拟环境,在虚拟环境下开 ...
- ubuntu系统下创建软件桌面快捷方式
转自ubuntu系统下创建软件桌面快捷方式 默认情况下,ubuntu会将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,只需要右键-复制- ...
- 在 Ubuntu 系统中部署 Git Server
http://blog.csdn.NET/poisonchry/article/details/11849781 虽然有很多开源的Git仓库,不过并非所有都尽人意,譬如Github,Gitlab等,不 ...
- 手把手教你如何在Ubuntu系统中安装Pycharm
前几天带大家一起安装了Ubuntu14.04系统,没来得及上车的伙伴可以戳这篇文章:手把手教你在VMware虚拟机中安装Ubuntu14.04系统.今天小编带大家一起在Ubuntu14.04中安装Py ...
- Ubuntu系统中登陆阿里云服务器的方法
如果您购买了阿里云服务器,恰巧又在使用Ubuntu操作系统,那么恭喜你来对地方了,今天给大家分享一下如何在Ubuntu中登陆阿里云服务器: 主要使用两款软件:1.SecureCRT:2.SecureF ...
- Ubuntu系统中安装RPM格式包的方法
Ubuntu的软件包格式为deb,而RPM格式的包则是Red Hat 相关系统所用的软件包.当我们看到一个想用的软件包时,如果他是RPM格式,而你的操作系统是Ubuntu,那岂不是很遗憾?其实,在Ub ...
- 在Debian/Ubuntu系统中安装*.sh与*.bin文件
在Debian/Ubuntu系统中安装*.sh与*.bin文件的基本方法.一,安装*.sh文件运行命令行至文件目录下,执行:sudo sh *.sh直接运行在命令行中执行:sudo chmod +x ...
- 利用workbench对linux/Ubuntu系统中的mysql数据库进行操作
在上一篇文章中,我分享了在linux中如何安装mysql数据库,但是这只是安装了mysql的服务,并没有图形化管理界面,所以这样子操作起来并没有那么方便,那么现在我们就来实现如何利用在window中安 ...
- ubuntu系统中查看本机cpu和内存信息的命令和用法
https://zhidao.baidu.com/question/192966322.html 写出ubuntu linux系统中查看本机cpu和内存信息的命令和用法,以及如何解读这些命令 ubun ...
随机推荐
- WPF页面切换
XAML <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft. ...
- SaltStack常用的模块
目录 1. SaltStack模块介绍 2. SaltStack常用模块 2.1 SaltStack常用模块之network 2.1.1 network.active_tcp 2.1.2 networ ...
- Flink流处理(二)- 流处理基本概念
1. Dataflow Programming 在讨论流处理的基本概念之前,我们首先介绍一下数据流编程(dataflow programming)的基本概念与术语. 数据流图 数据流程序一般在由数据流 ...
- 爬山 启发式合并 / STL
题目 其实 Kano 曾经到过由乃山,当然这名字一看山主就是 Yuno 嘛.当年 Kano 看见了由乃山,内心突然涌出了一股杜甫会当凌绝顶,一览众山小的豪气,于是毅然决定登山. 但是 Kano 总是习 ...
- 寒假安卓app开发学习记录(7)
今天学习了Intent的基本用法.Intent是什么?Intent在Android中的核心作用就是“跳转”(Android中的跳转机制),同时可以携带必要的信息,将Intent作为一个信息桥梁.最常用 ...
- EAC3 Spectral Extension Process
1.overview 当使用Spectral extension时,channel中的高频部分的transform coefficients由低频部分合成. transform coefficient ...
- Java传(1)
____________________________去告诉世界,我已经横空出世了! 你好丫,世界! public class HelloWorld{ public static void main ...
- C语言合法标识符 题解
输入一个字符串,判断其是否是C的合法标识符. Input输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串. Output对 ...
- codeforces Make The Fence Great Again(dp)
题目链接:http://codeforces.com/contest/1221/problem/D 题目要求ai ! = ai-1,草纸上推理一下可以发现每一个栅栏可以升高的高度无非就是 +0,+1, ...
- [Java] 多线程基础详细总结,附加详细实例
详细代码在文章底部 目录 基础概念 进程与线程 单线程与多线程 实现线程的4中方式 thread.start()和runnable.run()的区别 Thread和Runnable的异同 线程的基本操 ...