1、python版本和pip版本

2、PATH和PYTONPATH

1、python版本和pip版本

1、python版本

一般Ubuntu里面都装的不止一个版本的python,比如有python2.3和python3.3。但其实这两个不是兼容的,并且site-packages也会有所不同。如果混用的话,可能会造成困难。(现在终于明白为什么之前用pip命令安装ale一直失败了)

想要查看系统有多少python版本:

① 分别执行

 $ python --version
$ python2 --version
$ python3 --version

②或者是执行:

 $ ls -ls /usr/bin/python*

如果想要查看当前Ubuntu默认的Python版本,可以执行:

 $ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'

 2、python‘s site-packages  和  pip

既然知道python2和python3不兼容,那么如果混这两个版本的站点包的话,可能也会出现一些小问题:

这里就说到另外一个命令:pip

首先你要知道的是python2和python3的pip并不是同一个命令,而是分别有各自的pip,并且pip安装站点包后存放的位置也不一样。

使用如下命令:

 $ pip install --user tensorflow

  这是给系统默认的python版本安装包。(如果没有重新设置的话,一般默认Python版本都是python2。就算你重新设置了,也可能会有问题,所以,最好用下面的命令)

可以用如下命令来给特定的Python版本安装包:

 $ python2 -m pip install --user tensorflow   #给Python2版本安装包
$ python3 -m pip install --user tensorflow #给python3版本安装包

当然下面命令也是可以的:

$ pip2 install --user tensorflow
$ pip3 install --user tensorflow

  想要知道pip到底用的哪个?

    https://stackoverflow.com/questions/40832533/pip-or-pip3-to-install-packages-for-python-3

  你需要知道这两个命令最后下载包的位置是不一样的。

  如果你想知道自己的包,是下载到了哪里,可以执行:

 $ python2 -m pip show tensorflow
$ python3 -m pip show tensorflow

自己之前弄混时,出现的错误:之前我一直用pip install 命令来安装包,但是系统默认是python2版本,而我用的是python3版本。我直接把python3的搜索路径指向了python2下载站点包的存储目录。这样python3也能找到TensorFlow了,虽然是python2版本的TensorFlow。但是最后在安装ALE包时,怎样都安装不上,或许是和python2版本的pip有关吧。反正这个错误一定不要再犯了。

  3、更改系统默认的Python版本:

  更改这些设置,我们就是想要在.bashrc中写点什么,先用vi编辑器打开.bashrc文件:

 $ vi ~/.bashrc    #用vi编辑器,编辑用户目录下的.bashrc文件

  然后在这个.bashrc文件里面的一个新行:码下这行字:

alias python=python3

  然后,保存并推出。再执行命令:

 $ source ~.bashrc

  ok,done.

  这时候再看python版本:就是Python3了。 原文链接 :

     https://stackoverflow.com/questions/41986507/unable-to-set-default-python-version-to-python3-in-ubuntu

  Conclusion:

  在有多个版本时,每次使用都特定指出用的是哪一个版本的python。

2、Ubuntu系统中的PYTHONPATH和PATH

为什么说到这个,因为之前虽然也看了环境变量、系统变量、局部变量这些,但模模糊糊的。所以在遇到PYTHONPATH和PATH时也是模糊不清。

PYTHONPATH:python的搜索路径。python如果想要找一些模块,函数等,就会通过PYTHONPATH中的路径来逐一查找。

  PATH:PATH is an enviroment variable. It basically tells your machine where to search for programs,

即,如果你没有把一个程序添加进PATH,那么你在运行它的时候就需要使用绝对地址:

 $ /usr/hitech/picc/9.82/bin/picc

  而,如果你把/usr/hitech/picc/9.82/bin/添加进你的PATH后,你就可以直接用如下命令:

 $ picc  #因为系统通过PATH里面设定的路径,是找得到这个programe的位置的

  至于如何修改这个PATH,推荐一个链接 :

     https://stackoverflow.com/questions/37676849/where-is-path-variable-set-in-ubuntu

Linux-python的一些小问题的更多相关文章

  1. 初学Python-搞了一个linux用户登录监测小工具

    这几天突发奇想,想学习一下Python.看了点基础,觉得有点枯燥,所以想搞点什么.想了想,就随便弄个检测Linux用户登录的小工具吧~ 首先,明确一下功能: 1.能够捕获 linux 用户登录的信息. ...

  2. kali linux Python开发环境初始化

    kali linux Python 黑客编程1 开发环境初始化 为什么要选择Python? Python作为目前Linux系统下最流行的编程语言之一,对于安全工作者的作用可以和C++相提并论.Pyth ...

  3. Linux的95个小技巧

    Linux的95个小技巧 by WEB全栈工程师 on 2012 年 03 月 27 日 这里总结了Linux使用中的一些小技巧 1.实现RedHat非正常关机的自动磁盘修复 先登录到服务器,然后在/ ...

  4. python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET

    python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET python random模块 分类: python 2011-11-15 15:31 6037人阅读 评论(2) ...

  5. 关于理解python类的小题

    今天看了python部落翻译的一篇<一道python类的小题>文章,感觉挺有启发性,记录下来: print('A') class Person(object): print('B') de ...

  6. linux快速复制大量小文件方法 nc+tar【转】

    1,在需要对大量小文件进行移动或复制时,用cp.mv都会显得很没有效率,可以用tar先压缩再解压缩的方式.  2,在网络环境中传输时,可以再结合nc命令,通过管道和tcp端口进行传输.  nc和tar ...

  7. Linux 快速删除大量小文件方法

    进行以下两步操作即可: 1.第一步:创建空的文件夹: mkdir  /tmp/blank 2.第二步:执行以下命令:rsync --delete-before -d /tmp/blank/ /home ...

  8. linux python 安装 nose lapack atlas numpy scipy

    linux python 安装 nose lapack atlas numpy scipy --http://lib.csdn.net/article/python/1262 作者:maple1149 ...

  9. 【Python教程】《零基础入门学习Python》(小甲鱼)

    [Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609

  10. Python开发转盘小游戏

    Python开发转盘小游戏 Python  一 原理分析 Python开发一个图形界面 有12个选项和2个功能键 确定每个按钮的位置 每个按钮的间隔相同 点击开始时转动,当前选项的背景颜色为红色,其他 ...

随机推荐

  1. PHP根据ASCII码返回具体的字符

    根据ASCII码返回具体的字符,在php中可以使用函数 chr(); 如:大写字母A的 ASCII码是 65, 所以: <?php echo chr(65);//结果是大写字母 A ?> ...

  2. TypeLoadException: Could not load type 'Microsoft.AspNetCore.Mvc.Internal.IHttpResponseStreamWriterFactory' from assembly 'Microsoft.AspNetCore.Mvc.Core, Version=2.1.2.0 ...

    今天调试 asp.net core 2.0 项目时遇到了如下错误: TypeLoadException: Could not load type 'Microsoft.AspNetCore.Mvc.I ...

  3. java并发编程(3)避免活跃性危险

    活跃性危险 一.死锁 发生:每个人都不愿意放弃自己的锁,确想要别人的锁,这就会导致死锁  1.锁顺序死锁:如果每个线程以固定的顺序获取锁,那么至少在程序中不会出现锁顺序导致的死锁: 因为顺序固定如:所 ...

  4. [转]How to Use Web API OData to Build an OData V4 Service without Entity Framework

    本文转自:http://www.odata.org/blog/how-to-use-web-api-odata-to-build-an-odata-v4-service-without-entity- ...

  5. Centos 从零开始 (一)

    因为本人也是刚接触 centos 24k纯小白, 所以是从零开始的攻略的 ,可能技术层次理解的不是很深.但这些东西都是无限的测试,之后一步步可行的. 同时我遇到的问题也会不断的刷新在我的微博上. 一. ...

  6. Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)

    Visual State Manager,中文又称视觉状态管理器(简称为VSM),是Silverlight 2中引进的一个概念.通过使用VSM,开发人员和设计人员可以轻松的改变项目控件的视觉效果,在项 ...

  7. gradle 构建的 Spring Boot 使用 logback

           文章讲的是配置和使用,入门请看文档先. what 目的: 可以实现log不同级别的日志记录,例如info 在一个文件夹内,另一个级别的在另一个文件夹内. how 配置依赖项 //log ...

  8. 2017年12月14日 LinQ高级查&&Asp.net WebForm Asp.net MVC

    LinQ的高级查询用法 开头:StartsWith()结尾:EndsWith()模糊:Contains() 个数:Count最大值:Max(r => r.price)最小值:Min(r => ...

  9. java时间工具类

    在项目中,很多地方需要根据时间获取相应的数据,将时间格式化,或者时间比较等相关操作.一个良好的工具类不仅可以减少代码冗余,还能促进业务处理,加快进度. /** * @author: lxw * @Da ...

  10. javaweb之请求的转发和重定向

    1.什么是请求转发和请求重定向? 请求转发: xxServlet收到请求,然后直接转发给yyServlet,然后yyServlet返回给客户端.整个过程中,客户端发出一个请求,收到一个响应. 重定向: ...