Linux-python的一些小问题
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了。 原文链接 :
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的一些小问题的更多相关文章
- 初学Python-搞了一个linux用户登录监测小工具
这几天突发奇想,想学习一下Python.看了点基础,觉得有点枯燥,所以想搞点什么.想了想,就随便弄个检测Linux用户登录的小工具吧~ 首先,明确一下功能: 1.能够捕获 linux 用户登录的信息. ...
- kali linux Python开发环境初始化
kali linux Python 黑客编程1 开发环境初始化 为什么要选择Python? Python作为目前Linux系统下最流行的编程语言之一,对于安全工作者的作用可以和C++相提并论.Pyth ...
- Linux的95个小技巧
Linux的95个小技巧 by WEB全栈工程师 on 2012 年 03 月 27 日 这里总结了Linux使用中的一些小技巧 1.实现RedHat非正常关机的自动磁盘修复 先登录到服务器,然后在/ ...
- python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET
python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET python random模块 分类: python 2011-11-15 15:31 6037人阅读 评论(2) ...
- 关于理解python类的小题
今天看了python部落翻译的一篇<一道python类的小题>文章,感觉挺有启发性,记录下来: print('A') class Person(object): print('B') de ...
- linux快速复制大量小文件方法 nc+tar【转】
1,在需要对大量小文件进行移动或复制时,用cp.mv都会显得很没有效率,可以用tar先压缩再解压缩的方式. 2,在网络环境中传输时,可以再结合nc命令,通过管道和tcp端口进行传输. nc和tar ...
- Linux 快速删除大量小文件方法
进行以下两步操作即可: 1.第一步:创建空的文件夹: mkdir /tmp/blank 2.第二步:执行以下命令:rsync --delete-before -d /tmp/blank/ /home ...
- linux python 安装 nose lapack atlas numpy scipy
linux python 安装 nose lapack atlas numpy scipy --http://lib.csdn.net/article/python/1262 作者:maple1149 ...
- 【Python教程】《零基础入门学习Python》(小甲鱼)
[Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609
- Python开发转盘小游戏
Python开发转盘小游戏 Python 一 原理分析 Python开发一个图形界面 有12个选项和2个功能键 确定每个按钮的位置 每个按钮的间隔相同 点击开始时转动,当前选项的背景颜色为红色,其他 ...
随机推荐
- JavaScirpt事件处理
一.事件流 事件流,描述的是页面中接受事件的顺序,不过,IE的事件流是事件冒泡流,而Netscape Communicator的事件流是事件捕获型.标准同时支持两种事件模型,即捕获型事件与冒泡型事件, ...
- Tomcat与Nginx的整合
Tomcat与Nginx的整合 环境 操作系统:ubuntu 14.04.4 LTS 安装Nginx 有两种方式,一种是使用apt-get命令来安装二进制版本,另外一种是下载源码后自己编译. 二进制安 ...
- 在 Linux 平台下使用 JNI
引言 Java 的出现给大家开发带来的极大的方便.但是,如果我们有大量原有的经过广泛测试的非 Java 代码,将它们全部用 Java 来重写,恐怕会带来巨大的工作量和长期的测试:如果我们的应用中需要访 ...
- FocusBI:SSAS体系结构(原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. SSAS是微软BI组件系列中最核心的组件,商业智能的心脏所有的数据都从这里统一输出,它能把 ...
- Hibernate一对多关系操作
1.创建两个实体类. 一个实体类是商品类,另一个实体类是商品的分类类. 在一对多关系的两个实体中,在编写实体类时必须要遵循以下规则: (1)在一的那一方的实体中,必须要有一个私有的多那一方的实体对象属 ...
- Python基础(1) - 初识Python
Python 特点: 1)面向对象 2)解释执行 3)跨平台.可移植 4)垃圾回收机制 5)动态数据类型.强类型 6)可扩展.可嵌入 Python可以方便调用C/C++等语言,同时也可以方便的被C/C ...
- 学习笔记之--认识Xcode中的重要成员:lldb调试器
之前对lldb调试器了解比较少,平时主要用来打印日志和暂定时用鼠标查看属性数据以及使用p po一些简单的命令语句. 今天看了一些关于lldb的文章,顿时觉得之前对它了解太少了,原来它还有那么多的功能. ...
- Golang教程:goroutine信道
在上一篇教程中,我们讨论了如何使用协程实现并发.在这篇教程中,我们将讨论信道以及如何使用信道实现协程间通信. 什么是信道 信道(Channel)可以被认为是协程之间通信的管道.与水流从管道的一端流向另 ...
- Firebird with lock
Firebird 锁,默认是行级锁,即记录锁. 通常最常用的是 with lock ,即:将查出的所有记录都锁定,但允许其他事务读取,不允许其他事务更新.删除.本事务允许更新. 另一种 for upd ...
- nodejs图片裁剪、缩放、水印
关于nodejs下图片的裁剪.水印,网上的模块很多,主要如下: gm:https://github.com/aheckmann/gm node-canvas:https://github.com/Au ...