背景

由于之前项目采用的版本是Python2.7, 考虑到Python 2.7 到明年(2020年后将会停止更新),以及为了更好的适应中文和拥抱新的特性。我们决定将其从python 2 升级到最新的 python 3。

实际的线上环境是Ubuntu16.04LTS,默认安装了python 2.7 & 3.5 两个版本。因此,这次的考虑实际情况后决定先升级到3.5,以后再过渡到最新的3.7.

使用pip3 匹配 python 3

pip 与 pip3 区别

  • 电脑同时有多个版本的 python 时,pip3 可以自动判别用 python3 来安装库,是为了避免同 python2 发生冲突。
  • 如果你的电脑仅仅安装了 python3,使用 pip 或者 pip3 是一样的。

pip install xxxxxx
新安装的库会放在后面这个目录下面:python2.7/site-packages

pip3 install xxxxxx
新安装的库会放在后面这个目录下面:python3.6/site-packages

如果使用 python3 执行程序,那么就不能 import python2.7/site-packages 中的库。

由于Ubuntu16.04默认安装有python 2.7 & 3.5 两个版本,所以,我们需要使用pip3来负责管理和使用python3的依赖。安装pip3的命令如下:

sudo apt-get install python3-pip

使用 virtualENV

什么是virtualenv

virtualenv是一个用于创建Python虚拟环境的工具。

虚拟环境又是什么呢?它是Python解释器的一个私有副本,在这个环境中可以安装私有包,而不会影响到系统中安装的全局Python解释器。
当一台主机上运行着多个Python应用时,使用虚拟环境可以有效的避免包的混乱和版本的冲突。

安装 virtualENV

sudo pip3 install virtualenv

创建virtualENV for python3

cd somedir
virtualenv -p python3 venv3

使用 pycharm 加载 virtualENV

加载 virtualENV , 如图

我们可以根据“interpreter path” 右侧的文件夹图标选择 virtualEnv 的路径 (选择:python3文件, 例如: xxx/venv3/bin/python3.5), 如图所示:

在pycharmd的terminal中安装开发的依赖包

首先,先将所有的依赖整理到一个 requirement.txt中,如下,

然后打开pycharm的terminal,使用pip3安装依赖包

完成后,pycharm 会自动感知到变更重新更新 interpreter。

到此,我们的开发环境准备工作完成。欢迎大家留言交流。

参考:

https://www.jianshu.com/p/94a047301f4a

https://blog.csdn.net/chengyq116/article/details/83794489

python 2.7 - 3.5 升级之路 (一) : 准备阶段开发环境 -- pip3, vitualEnv, pycharm的更多相关文章

  1. python 2.7 - 3.5 升级之路 (二) : 语法与类库升级

    背景 在上一篇博文中,我们为升级python 2 -> 3已经做了一些准备.在这篇中,我们将针对语法与类库这两个方面进行讨论. 关于语法 1. print 在python3中, print 已经 ...

  2. Python学习之路 (一)开发环境搭建

    前言 python3应该是Python的趋势所在,当然目前争议也比较大,这篇随笔的主要目的是记录在centos6.7下搭建python3环境的过程 以及碰到的问题和解决过程. 另外,如果本机安装了py ...

  3. ionic2如何升级到最新版本、配置开发环境

         好久没写东西了,去年用了angular2的RC版本和ionic2写了一个项目,因为开发周期和有些版本不稳定,所以一直没有升级,ng2新版本引用Aot打包,听说优化还不错,现在尝试升级ioni ...

  4. 【SSH进阶之路】Hibernate搭建开发环境+简单实例(二)

    Hibernate是很典型的持久层框架,持久化的思想是很值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和原理 ...

  5. Python基础教程(020)--集成开发环境IDE简介--Pycharm

    前言 学会掌握Pycharm工具 内容 集成了开发软件需要的所有工具 1,图形用户界面 2,代码编译器(支持代码补全,自动缩进) 3,编译器,解释器 4,调试器(断点,单步执行) Pycharm介绍 ...

  6. 前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数据初始化

    前端环境配置 项目介绍文章:前端基于react,后端基于.net core2.0的开发之路(1) 介绍 1.VSCode安装 下载地址:https://code.visualstudio.com/Do ...

  7. Python GUI界面开发环境配置:Pycharm+PyQt5

    通过DoS命令行执行如下命令,可能需要管理员权限. 检查Python版本:python 更新pip版本:python -m pip install --upgrade pip 安装PyQt5: pip ...

  8. java攻城师之路(Android篇)--搭建开发环境、拨打电话、发送短信、布局例子

    一.搭建开发环境 1.所需资源 JDK6以上 Eclipse3.6以上 SDK17, 2.3.3 ADT17 2.安装注意事项 不要使用中文路径 如果模拟器默认路径包含中文, 可以设置android_ ...

  9. python学习之python开发环境搭建

    Python简介 Python是一种面向对象.解释型计算机程序设计语言.Python语法简洁而清晰,具有丰富和强大的类库等等众多的特性,这是来自百度百科的介绍,在百度百科还能看到它的更详细的介绍信息, ...

随机推荐

  1. chrome 里面js提示Provisional headers are shown错误

    参考:http://stackoverflow.com/questions/21177387/caution-provisional-headers-are-shown-in-chrome-debug ...

  2. 【备忘】C#语言基础-1

    C#基础 注意区别哟! C#是一种托管语言,与C++不同,不能直接操作系统底层,依赖于 framework. 如果局部变量和全局变量同名,全局变量就会被屏蔽. 函数的返回值类型不是签名的一部分,所以不 ...

  3. delphi7 stringgrid 点列头排序

    最近在做stringgrid的项目, 下面delphi7 正常使用,均摘抄网路,但做过细微调整才能正常使用 首先排序的过程 procedure Quicksort(Grid: TStringGrid; ...

  4. Linux iostat

    转自 http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html Linux IO实时监控iostat命令详解 简介 iostat ...

  5. 预处理器#include 指令

    预处理器发现 #include 指令后,就会寻找后跟的文件名并把这个文件的内容包含到当前文件中.被包含文件中的文本将替换源代码文件中的#include指令,就像你把被包含文件中的全部内容键入到源文件中 ...

  6. 【Netty4】深入学习Netty

    Netty is an asynchronous event-driven network application framework  for rapid development of mainta ...

  7. 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用ApplicationPart动态加载控制器和视图

    标题:从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图 作者:Lamond Lu 地址:http://www.cnblogs ...

  8. 39 | 从小作坊到工厂:什么是Selenium Grid?如何搭建Selenium Grid?

  9. Python开发【第八篇】: 网络编程

    内容概要 楔子 软件开发架构 网络基础 套接字(socket) 粘包 socketserver模块 一. 楔子 现在有两个python文件a.py和b.py,分别运行,这两个程序之间需要传递一个数据, ...

  10. LeetCode刷题------------------------------LeetCode使用介绍

    临近毕业了,对技术有种热爱的我也快步入码农行业了,以前虽然在学校的ACM学习过一些算法,什么大数的阶乘,dp,背包等,但是现在早就忘在脑袋后了,哈哈,原谅我是一枚菜鸡,为了锻炼编程能力还是去刷刷Lee ...