前段时间想自学一下python,就在虚拟机里已安装python2.7的情况下又安装了最新版python3.6.4。于是问题来了。。只要一打开终端就出现一大段错误代码(忘记截图了),当时看到是ros和python有问题,于是直接把ros给卸载了,我重装还不行吗??好吧,安装一开始初始化rosdep就出现如下错误:

原来是python有问题!!

由于不知道在我安装3.6版本之前/usr/bin文件夹是什么个情况(不知道里面的文件哪些需要哪些不需要),真是无从下手,后来换了一台电脑比较了一下,果然是python文件出了问题(原本应该和其他的一样是个可执行程序,它失去了与python3.6m的链接),而我又找了一下,python3.6被我安装在/usr/local/bin下。

不管三七二十一,试着重新安装一下python3.6吧,按照这个博客里的方法安装了一下,

https://www.cnblogs.com/Guido-admirers/p/6259410.html

python3.6是安好了,可是也许因为版本太新,和ros不是很兼容?可以在网上搜一下在ros中使用python3的方法。

https://www.cnblogs.com/h46incon/p/6207145.html

我感觉太麻烦了,还是默认使用python2.7吧。。学习python的时候再自己用3.6版本。

下面是具体步骤:


一、官网下载python3的所需版本

这个自己下吧,我用原来已经下好的Python-3.6.4

二、解压文件

我解压在/opt下

三、创建安装文件的路径

(安装在/usr/local路径下,而不是/usr。

/usr/bin与/usr/local/bin的区别:/usr/bin是系统文件夹,有很多重要的系统文件,而/usr/local/bin就是用户自己下载的程序放在里面)

mkdir /usr/local/python3

四、编译

./configure --prefix=/usr/local/python3

五、安装

sudo make

sudo make install

六、创建新版本的软链接

(这个软链接是个什么东西呢,上面已经说了/usr/bin与/usr/local/bin的区别,就是说只要把/usr/local/bin生成的二进制文件链接到/usr/bin里面的二进制文件,就可以实现直接调用了)

1、修改旧版本

就是把原来系统默认的python文件改个名字,不用它了

sudo mv /usr/bin/python /usr/bin/python_pre

2、创建新的软链接

sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
sudo ln -s /usr/bin/python2 /usr/bin/python

这里我把默认的python还是链接在python2上,若想使用python3,就输入python3

3、检查python的版本

python -V

显示python-3.6.4

软链接创建成功

七、配置成功后,pip3用不了,需进一步配置。

PATH=$PATH:$HOME/bin:

PATH=$PATH:$HOME/bin:/usr/local/python3/bin

这时pip3就可以使用了。

linux下python3的安装(已安装python2的情况下)的更多相关文章

  1. linux安装python3(已有python2.x情况下)

    参考:https://www.cnblogs.com/Guido-admirers/p/6259410.html 1.官网下载python3 cd /home/download wget https: ...

  2. 关于Linux下Texlive无法找到已安装字体的问题与解决

    关于Linux下Texlive无法找到已安装字体的问题与解决 当我在Ubuntu系统下使用Latex时,在编译渲染时报出了Font "xxx" does not contain r ...

  3. m_Orchestrate learning system---二十九、什么情况下用数据库做配置字段,什么情况下用配置文件做配置

    m_Orchestrate learning system---二十九.什么情况下用数据库做配置字段,什么情况下用配置文件做配置 一.总结 一句话总结: 配置文件 开发人员 重置 数据库 非开发人员 ...

  4. ubuntu下python3及idle3的安装

    一.使用以下命令检查自己的系统下是否有python3 python3 --version 如果出现类似“command not found",则说明你需要安装python3.如果能够出现py ...

  5. Windows环境下python3.7版本怎么安装pygame

    访问此网址 下载对应Python版本的pygame,如下图: 下载完成后,会有一个whl后缀的文件. 将此文件复制到Python根目录下的scripts目录下,打开cmd, 切换到scripts目录下 ...

  6. 已经安装了Myeclipse8.5 的情况下,激活myeclipse10.7要注意

    使用下载好的10.7的包里的激活文件和提供的激活方法激活,不成功,在网上搜索了很多方法试过也不成功,最后打开安装目录D:\MyEclipse 10下的myeclipse.ini文件,发现如下内容: . ...

  7. 错误ORA-01110,在已删除数据文件情况下如何删除表空间

    如果先行删除了数据文件,再删除表空间,drop tablespace 会出现如下错误: ORA-01116: error in opening database file 89 ORA-01110: ...

  8. 插件化开发—动态加载技术加载已安装和未安装的apk

    首先引入一个概念,动态加载技术是什么?为什么要引入动态加载?它有什么好处呢?首先要明白这几个问题,我们先从 应用程序入手,大家都知道在Android App中,一个应用程序dex文件的方法数最大不能超 ...

  9. 插件化开发—动态载入技术载入已安装和未安装的apk

    首先引入一个概念,动态载入技术是什么?为什么要引入动态载入?它有什么优点呢?首先要明确这几个问题.我们先从 应用程序入手,大家都知道在Android App中.一个应用程序dex文件的方法数最大不能超 ...

随机推荐

  1. C++中抽象类和多继承

    C++中没有java中接口的概念,但是可以使用抽象类来模拟java中的接口. 工程上的多继承 工程开发中的多继承几乎是不被使用的 多继承带来的代码的复杂性,远远大于其代码带来的便利性. 多继承对代码的 ...

  2. Convolutional Neural Networks for Visual Recognition 5

    Setting up the data and the model 前面我们介绍了一个神经元的模型,通过一个激励函数将高维的输入域权值的点积转化为一个单一的输出,而神经网络就是将神经元排列到每一层,形 ...

  3. H264视频编码成MP4文件

    firehood的专栏 Wince嵌入式开发       目录视图 摘要视图 订阅 赠书 | AI专栏(AI圣经!<深度学习>中文版)      每周荐书:Kotlin.分布式.Keras ...

  4. Uva10366

    模拟乱搞 要说算法的话...乱搞算法? #include<iostream> #include<cstring> #include<algorithm> #incl ...

  5. 桥接以及Mercury MW54R中继

    家里连个路由器,一个是比较先进的TP-Link的TL-WR842N(100M),另外一个是比较古老的水星(Mercury) MW54R(54M),我们知道新的路由器都有WDS功能,方便作为副路由器(中 ...

  6. BZOJ1216:[HNOI2003]操作系统

    我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...

  7. centos 6 rsync+inotify 实时同步

    主机名.ip: server 172.31.82.184 client  172.31.82.185 需求: 1.server端 ”/data/server“ 做为client端 “/data/cli ...

  8. android使用wcf接收上传图片视频文件

    一.Android 权限配置文件: <?xml version="1.0" encoding="utf-8"?> <manifest xmln ...

  9. 【转】 Pro Android学习笔记(七五):HTTP服务(9):DownloadManager

    目录(?)[-] 小例子 保存在哪里下载文件信息设置和读取 查看下载状态和取消下载 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csd ...

  10. Java访问子类对象的实例变量

    对于Java这种语言来说,一般来说,子类可以调用父类中的非private变量,但在一些特殊情况下, Java语言可以通过父类调用子类的变量 具体的还是请按下面的例子吧! package com.yon ...