Linux中python的开发环境配置(虚拟环境)

1 pyenv

pyenv是一个Python版本管理工具,它能够进行全局的Python版本切换,也可以为单个项目提供对应的Python版本。使用pyenv以后,可以在服务器上安装多个不同的Python版本,也可以安装不同的Python实现。不同Python版本之间的切换也非常简单。pyenv官方地址https://github.com/pyenv/pyenv-installer

  • 安装pyenv

#1 安装pyenv,在命令行下键入:
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
​https://www.linuxidc.com/Linux/2018-05/152610.htm
#默认安装到当前用户的工作目录下的.pyenv,我们可以查看一下
$ cd ~
$ ls -la
​
#如果安装过git,也可以使用以下安装方式安装$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
​
#2 将安装路径写入~/.bashrc将以下三条语句写入 ~/.bashrc  
export PATH="/home/zhu/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
​
$ source  ~/.bashrc  #配置立刻生效
​
$ echo $PATH
#如果路径第一个结尾是shims则表示成功
/home/python/.pyenv/plugins/pyenv-virtualenv/shims:/home/python/.pyenv/shims:/home/python/.pyenv/bin:/home/python/bin:/home/python/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
​
​
​
#3 更新一下
$ pyenv rehash
  • 使用pyenv

    #1.查看pyenv当前支持哪些Python版本
    python@ubuntu:~$ pyenv install --list
    Available versions:2.1.32.2.32.3.7...#2.列出pyenv中所有可用的python版本
    python@ubuntu:~$ pyenv versionssystem3.5.4
    * 3.6.4 (set by /home/python/.pyenv/version)  # *表示当前使用的3.6.4版本
    ​
    #3.选择指定的python版本
    python@ubuntu:~$ pyenv global 3.5.4  #设置指定的版本
    python@ubuntu:~$ python  
    Python 3.5.4 (default, Mar 29 2018, 11:02:03)  #已经切换到了3.5.4
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    切换Python版本以后,与版本相关的依赖也会一起切换。因此,我们不用担心不同的版本在系统中是否会相互干扰。
    ​
    #4. 删除指定python版本
    python@ubuntu:~$ pyenv uninstall 3.5.4
    pyenv: remove /home/python/.pyenv/versions/3.5.4? y
    python@ubuntu:~$ pyenv versionssystem
    * 3.6.4 (set by /home/python/.pyenv/version)
  • 安装python

    #1.在安装python之前,我们必须要安装python所需要的依赖包,这个必须要安装, 否则安装会失败的:
    $ sudo apt-get install libc6-dev gcc
    $ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
    ​
    #2. 安装python
    $ pyenv install 3.6.4 -v  #-v 以日志模式显示安装过程
    #因为pyenv会自动到github上下载,速度超慢,所以一般会选择使用curl或者wget下载到~/.pyenv/cache下,然后再用pyenv安装,下面是可选的安装模式
    $ cd ~/.pyenv
    $ sudo mkdir cache
    $ wget -c http://mirrors.sohu.com/python/3.6.4/Python-3.6.4.tar.xz -P  ~/.pyenv/cache/
    $ pyenv install 3.6.4 -v
    ​
    #3.更新pyenv数据库$ pyenv rehash
    ​
    #4.列出所安装的python版本$ pyenv versions
    ​
    #5.切换python版本
    $ pyenv  global 3.6.4   #全局切换
    $ pyenv local 2.7.9 #和特定目录绑定
    ​
    #6.验证版本$ python
  • 注意:

    • 使用pyenv管理python,必须是用pyenv安装的python才行,系统以前有的,需要重新用pyenv安装

    • 使用pip安装第三方模块时会安装到~/.pyenv/versions/xxx下,不会和系统模块发生冲突;

    • 使用pip安装模块后,可能需要执行pyenv rehash更新数据库。

2 virtualenv

virtualenv本身是一个独立的项目,用以隔离不同项目的工作环境。例如,项目A和项目B都是使用Python 2.7.13,但是,项目A需要使用Flask 0.8版本,项目B需要使用Flask 0.9版本。我们只要组合pyenv和virtualenv这两个工具,就能够构造Python和第三方库的任意版本组合,拥有了很好的灵活性,也避免了项目之间的相互干扰。

virtualenv本身是一个独立的工具,用户可以不使用pyenv单独使用virtualenv。但是,如果你使用了pyenv,就需要安装pyenv-virtualenv插件而不是virtualenv软件来使用virtualenv的功能。

项目主页:https://github.com/yyuu/pyenv-virtualenv

  • 安装virtualenv(可选)

    如果是python3以上,安装完python就已经安装了virtualenv,就不用安装了

    #安装
    $ pip install virtualenv
    ​
    #或者,如果提示版本不匹配,可以使用--upgrade参数
    $ sudo pip install --upgrade virtualenv
  • 使用virtualenv创建项目的虚拟环境

一个项目创建一个virtualenv的虚拟环境,在这个环境中,可以用pip安装项目所需的库,不会影响其他项目。切记一个项目一个虚拟环境,否则可能会发生莫名的错误。

#1.首先创建项目目录
$ sudo mkdir -p myproject/blog
cd myproject/blog
​
#2.创建项目的虚拟环境
#用法:pyenv virtualenv python版本号 虚拟环境名
$ pyenv virtualenv 3.6.4 env36   #注意版本号必须是已经安装的,否则会报错
​
#3.切换到虚拟环境
python@ubuntu:/myproject/blog$ pyenv activate env36
​
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
​
(env36) python@ubuntu:/myproject/blog$  # (env36)表示该项目处于虚拟环境中
​
#验证
(env36) python@ubuntu:/myproject/blog$ python
Python 3.6.4 (default, Mar 29 2018, 10:33:37) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
​
#4. 切出虚拟环境
(env36) python@ubuntu:/myproject/blog$ pyenv deactivate env36
  • 使用pip下载库

使用pip下载,会从国外的网站下载,速度超慢,所以要切换pip到国内的镜像源,一般会用psm切换pip的源

  • 1.安装一个软件psm

    (bbs36)python@ubuntu:/myproject/blog$ pip install psm
    [sudo] python 的密码: 
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    E: 无法定位软件包 psm

     

  • 2.psm的使用 以下操作需要在虚拟环境外进行,选择好镜像源后在进入虚拟环境

    #1.查看列出pip的镜像源
    (bbs36)python@ubuntu:/myproject/blog$ psm ls
    ​
    pypi     https://pypi.python.org/simple/
    douban   http://pypi.douban.com/simple/
    aliyun   http://mirrors.aliyun.com/pypi/simple/
    ​
    #查看当前的镜像源
    (bbs36)python@ubuntu:/myproject/blog$ psm show
    ​
    Current source is douban
    ​
    #2.选择指定的镜像源
    ​
    (bbs36)python@ubuntu:/myproject/blog$ psm use douban
    ​
    Source is changed to douban.
    ​
    #3 使用pip下载库
    (bbs36) python@ubuntu:/myproject/blog$ pip install pymysql

 

virtualenvwrapper:virtualenv的扩展包

 

安装

安装很简单,使用easy_install进行安装

sudo easy_install virtualenvwrapper

此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,这个文件里面的注释部分有安装步骤,我们照着操作把环境设置好。

1.创建目录用来存放虚拟环境

mkdir $HOME/.virtualenvs

2.在~/.bashrc中添加

export WORKON_HOME=$HOME/.virtualenvs

3.在~/.bashrc中添加

source /usr/local/bin/virtualenvwrapper.sh

4.执行

source ~/.bashrc

此时virtualenvwrapper就可以使用了

使用

简单的介绍下使用:
列出虚拟环境列表

workon

也可以使用

lsvirtualenv

新建虚拟环境

mkvirtualenv [虚拟环境名称]

启动/切换虚拟环境

workon [虚拟环境名称]

删除虚拟环境

rmvirtualenv [虚拟环境名称]

离开虚拟环境

deactivate

 

总结:

1.   virtualenv   -p /usr/bin/python3  虚拟环境

 激活:source 虚拟环境/bin/activate

 退出虚拟环境: deactivate

 

2.  virtualenvwrapper 虚拟环境 的升级版

 

配置:.bashrc文件  (当前用户家目录cd ~ ,)

              .bashrc_profile (阿里服务器配置文件名)

……

保存 source .bashrc

命令:

mkvirtualenv -p /usr/bin/python3 shopping:创建虚拟环境 shopping

workon shopping: 工作在 online环境 或 从其它环境切换到 shopping 环境

deactivate: 退出终端环境

rmvirtualenv 虚拟环境的名字

 

3. 可以使用此方式:

sudo apt-get install python3-venv

python3 -m venv  虚拟环境

source  虚拟环境/bin/activate

退出: deactivate

 

 

- 注意:

  - 使用pyenv管理python,必须是用pyenv安装的python才行,系统以前有的,需要重新用pyenv安装

  - 使用pip安装第三方模块时会安装到~/.pyenv/versions/xxx下,不会和系统模块发生冲突;

  - 使用pip安装模块后,可能需要执行pyenv rehash更新数据库。

 

export PATH="$HOME/.pyenv/bin:$PATH"

eval "$(pyenv init -)"

eval "$(pyenv virtualenv-init -)"

 

 

source .bashrc

 

pyenv update   更新

 

pyenv install –list

 

强调:原生python3.6   python2.7  python3.7  操作系统

 

安装对应版本的python

 

pyenv  install  版本号

 

pyenv  versions  查看可以管理的版本有哪些

python 3.7.0

python 3.6.8

python 2.7.5

python 3.7.1

 

使用版本号:

pyenv  global   3.6.8

 

使用3.6.8设置虚拟环境:

pyenv  virtualenv 3.6.8  虚拟环境

 

进入虚拟环境:

pyenv    activate  虚拟环境名字

略微有一点乱.

退出:

pyenv deactivate  虚拟环境名字

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一个冲刺周期-第三天

一、先把数据库弄好,然后连接上,写一个测试用例,看看能不能调用数据, 增删改查是否正确,可以了的话,这一部分就结束了 二、 然后去写UI层,先写XML,把界面效果做出来 三、 然后写UI…

特征工程

上周参加了学校的数据挖掘竞赛,总的来说,在还需要人工干预的机器学习相关的任务中,主要解决两个问题:(1)如何将原始的数据处理成合格的数据输入(2)如何获得输入数据中的规律。第一个…

Linux下快速安装MySQL教程

转自:https://blog.csdn.net/sl1992/article/details/53634674 目录:前言:1.执行yum install mysql-server进行安装2.输入y进行确认3.安装成功4.查看MySQL是否启动5.启动MySQL6.查看是否运行7.设置开机启动MySQL8.创建MySQL管理员root9.登录M…

SpringMVC实战(注解)

1.前言 前面几篇介绍了SpringMVC中的控制器以及视图之间的映射方式,这篇来解说一下SpringMVC中的注解,通过注解能够非常方便的訪问到控制器中的某个方法. 2.配置文件配置 2.1 注解驱动,配置扫描器 首先须要在SpringMVC中的核心文件里指定注解驱动,详细例如以下: <?xml vers…

UIView类绘图出现错误提示

一:问题: Jan 16 15:49:53 CUBOT Band Ⅲ[2082] <Error>: CGContextSetLineWidth: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. Jan 16 15:49:53 CUBOT Band Ⅲ[2082] <Error>: CGCo…

Hbase2.0版本安装教程

目录&#xff1a;前言&#xff1a;1. 上传2. 解压3. 重命名4. 修改环境变量5. 修改配置文件6. 把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下7. 发送到其他机器8. 启动9. 查看总结&#xff1a; 目录&#xff1a; 前言&#xff1a; 最近由于工作需要又把HBase重装…

MySQL8.0版本和5.7通过Navicat远程连接

首先在数据库创建好连接的用户 进入mysql服务器终端&#xff1a; 命令窗口终端&#xff1a; mysql -u用户名 -p密码 sudo mysql -uroot -p 创建用户部分-- 使用mysql 数据库 USE mysql&#xff1b; -- 为mysql创建用户&#xff1a;root1 密码为&#xff1a;root1 …

HUE配置文件hue.ini 的zookeeper模块详解(图文详解)(分HA集群)

不多说&#xff0c;直接上干货&#xff01; 我的集群机器情况是 bigdatamaster&#xff08;192.168.80.10&#xff09;、bigdataslave1&#xff08;192.168.80.11&#xff09;和bigdataslave2&#xff08;192.168.80.12&#xff09; 然后&#xff0c;安装目录是在/home/hadoop/…

CF #366(div.2) C 模拟,思维

CF #366(div.2) C. Thor 题意&#xff1a;一个手机n个联系人&#xff0c;有q个操作。每次给出ty和ai&#xff0c;如ty1&#xff0c;表示收到ai的一条信息&#xff1b;如ty2&#xff0c;表示将ai发的信息都看掉&#xff1b;如ty3&#xff0c;表示将第1条到第ai条信息都看掉…

MySQL基本指令汇总

创建数据库&#xff1a; create database 数据库名字; 删除数据库: drop database 数据库名字; 查看数据库: show databases; 切换数据库: use databasename; select database(); Create table 表名&#xff08;列名 数据类型 [约束]&#xff0c;列名 数据类型 [约束]&a…

linux命令行在任意目录下启动任意的脚本的方法

目录&#xff1a;前言&#xff1a;1、直接在命令行中设置PATH2、在profile中设置PATH3、在当前用户的profile中设置PATH 目录&#xff1a; 前言&#xff1a; 这应该算是一个常识吧&#xff0c;但是对于许多像我们这样的新手来说&#xff0c;一旦你出点小差错&#xff0c;整个…

阿里云centos 安装和配置 DokuWiki

DokuWiki 是一个开源的 wiki 项目&#xff0c; 可方便进行知识和内容的管理和分享&#xff0c;不用安装数据库&#xff0c;内置权限管理&#xff0c;书写直观方便&#xff0c;有大量的插件支持。特别适用于企业内部的内容和知识管理&#xff0c;只允许内部员工编辑和查阅的场景…

python-爬虫

网络爬虫&#xff08;又被称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追逐者&#xff09;&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟…

MySQL5.7升级到8.0 之后,配合ubantu18.04遇到的常规问题以及非常规问题的解决方案

从MySQL5.7升级到8.0后首先会发现在创建用户和授权大大不同&#xff1b;其次还有更多常规问题以及非常规问题的解决方案 写本篇博客记录踩过的坑 MySQL8.0配合ubantu18.04 一、创建用户和授权 在mysql8.0创建用户和授权和之前不太一样了&#xff0c;其实严格上来讲&#xf…

机器学习之数理统计与参数估计的相关知识总结

文章目录目录&#xff1a;1、知道期望/方差/偏度/峰度&#xff0c;独立和不相关等概念是什么。2、契比雪夫不等式3、大数定理/中心极限定理4、伯努利定理5、矩估计6、最大似然估计7、协方差和相关系数目录&#xff1a; 1、知道期望/方差/偏度/峰度&#xff0c;独立和不相关等概…

Angular属性型指令

2019独角兽企业重金招聘Python工程师标准>>> 属性型指令 — 改变元素、组件或其它指令的外观和行为的指令 属性性指令的创建步骤如下&#xff1a; import语句需要从 Angular 的core库导入的一些符号。 Directive提供Directive装饰器功能。 ElementRef注入到指令构造…

beeline连接hiveserver2报错:User: root is not allowed to impersonate root

最近在生产中搭建HA机制的集群&#xff0c;碰到不少坑&#xff0c;会在接下来的时间里好好总结下&#xff0c;先说下遇到的一个大坑。我们的需求是&#xff1a;希望通过hive的thrift服务来实现跨语言访问Hive数据仓库。但是第一步&#xff0c;你得需要在节点中打通服务器端&…

局域网 两台电脑共享 密码关闭

转载于:https://www.cnblogs.com/WhiteHorseIsNotHorse/p/6832463.html

MySQL查询select语句详解

1.查询记录 select*from 表名 [where 条件];eg:select*from students;//查询 students 表中所有记录&#xff0c;所有字段的值都显示出来select field1,field2,...fieldn... from 表名 [where 条件];eg:select id,name,age from students;//查询 students 表中所有记录, 只显示…

SVN使用规范

转载于:https://www.cnblogs.com/shenxiaolin/p/6296880.html