linux已经装有python

2018-07-17 16:55:30 weixin_38725737 阅读数 14199
  • Linux操作系统介绍

    1.Jeesite 4.0介绍与安装、 2.jeesite4.0 Eclipse 常用快捷键、 3.jeesite4.0文件结构与配置、 4.jeeiste4.0 内置模块与内置组件应用、 5.jeesite4.0代码生成器的应用、 6.jeesite4.0 Spring Boot快速入门、 7....

    19197课时 0分钟 471人学习 陈贺群
    免费试看

哎!博主在实践过程中,遇到很多坑,甚至开始怀疑人生咯!幸好在第二天冷静下来思考尝试后,成功的实现了,现在,我将此失败经历记录下来,希望后来的我们不再痛苦。

博主的机器安装的是Ubuntu14.04,所以自带了python2.7以及python3.4,但是博主可能是强迫症患者,偏偏想要使用python3.6,以及想要利用python3.6来运行python代码,但是我的代码中需要用到numpy这个基础库包,当我利用命令下载完之后,python2.7可以用这个包,并且不报错,可是我们python3.6一直没法很好的运行,崩溃,报的错误各种各样,大致就是缺少什么模块之类的问题。

大致在网上查了一下,其中有个说法可能是符合我遇到的情况,意思大概就是,我们没有很好的将python3.6以及python2.7分离开来,所以安装的numpy包也没能有效的加载。

问题一:解决python各个版本之间切换的问题
方案是通过修改软链接以及相关配置文件,实现:

python切换命令 更改前对应版本 更改后对应版本
python python2.7.6 python2.7.6
python2 python3.4.3
python3 python3.6.3 python3.6.3

首先,查看相关python可执行目录,然后将其删掉

$ which python
/usr/bin/python

$ sudo rm /usr/bin/python

$ python
~bash: /usr/bin/python: No such file or directory

删掉之后,再输入$ python命令就会报错,因为系统不知道该如何执行,然后我们可以通过建立默认连接到对应的python版本上,这就是我们需要的操作。

$ ln -s /usr/bin/python2.7 /usr/bin/python

$ python -V
Python 2.7.6

至此就完成默认版本的修改了,也可以用同样方法修改python2和python3,最终的效果是:这里写图片描述

问题二:多版本pip与python对应

pip切换命令 更改前对应版本 更改后对应版本
pip 对应python2.7.6 对应python2.7.6
pip3 对应python3.6.3

这里就不要绑定过多啦,毕竟有很多是用不上的。所以我这边首先就是讲一下下载pip3的问题,下载的同时将其分离开来。
1、安装pip前需要前置安装setuptools
命令如下:

wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26

tar -zxvf setuptools-19.6.tar.gz

cd setuptools-19.6

sudo python3 setup.py build

sudo python3 setup.py install

2,安装pip

wget --no-check-certificate  https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb

tar -zxvf pip-8.0.2.tar.gz

cd pip-8.0.2

sudo python3 setup.py build

sudo python3 setup.py install

最后检验下,pip3是否安装成功吧!
这里写图片描述

问题三:以numpy包为例
1.如果使用python2.7.6,我们下载numpy库包,可以使用命令:

pip install numpy

2.如果使用python3.6.3,我们下载numpy库包,可以使用命令:

pip3 install numpy

最后检验一下,两次检测import numpy均成功!!
这里写图片描述

最近,遇到个问题,大致就是将matplotlib中的six库版本不对,但是卸载不掉,又更新不了,烦的要死的时候不断去尝试!

报错的地方:
Installing collected packages: six, matplotlib
  Found existing installation: six 1.5.2
Cannot uninstall 'six'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

针对这个问题,第一个想法,就是更新six,实际上做不到,我尝试了晚上各种套路都不行;第二个方法能不能忽略它,实际上操作过多次,后来突然茅塞顿开,试了下以下的方式,成功通关,妈妈再也不用为我担心了,因为心大。无奈脸~~~~~

sudo pip3 install matplotlib --upgrade --ignore-installed six

看下截图,可能更清楚:
这里写图片描述
这里写图片描述


在这个数据资源膨胀的年代,网络上的信息太多,也太乱,但是找到你心中最好的答案时,那一刻你是开心的!所以这里需要感谢两个以下链接!!!
https://www.cnblogs.com/rexyan/p/7485549.html
https://www.cnblogs.com/6324TV/p/9063450.html
https://blog.csdn.net/h12590400327/article/details/79178002

2018-01-16 20:35:13 CSND_PAN 阅读数 452
  • Linux操作系统介绍

    1.Jeesite 4.0介绍与安装、 2.jeesite4.0 Eclipse 常用快捷键、 3.jeesite4.0文件结构与配置、 4.jeeiste4.0 内置模块与内置组件应用、 5.jeesite4.0代码生成器的应用、 6.jeesite4.0 Spring Boot快速入门、 7....

    19197课时 0分钟 471人学习 陈贺群
    免费试看

简单学习完Python的语法之后,回头做一些整理,不然看的太快,根本记不住~

对于目前的学习来说,当然是学习Python 3 ,但是Python 2 也要了解以下。在Linux下,大多数发行版本都会装有Python 2.7 或者 2.6 并且系统中有很多东西是依赖Python 2.x这个版本的,所以呢,这个最好不要动。但是我们要学习Python 3 自然需要Python 3的环境了。

去Python 的官网下载源码安装包 https://www.python.org/downloads/release/python-364/
这里写图片描述

选择第一个下载。
Python-3.6.4.tgz

然后解压 该文件

tar -zxvf Python-3.6.4.tgz

进入解压目录

cd Python-3.6.4

更改安装目录

./configure --prefix=/usr/python

编译源码

make 

安装软件

sudo make install

出错,由于一些依赖没有安装 ,或者版本不够新。

sudo yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

之后,再次安装

sudo make install

安装成功后,会输出,pip也安装了相应版本。

这里写图片描述

我这里程序自动的创建了连接,在终端下 输入python3 即可使用 刚才安装的版本,使用pyhon命令 默认还是调用系统原来的版本。如果没有自动创建,可以输入以下命令:

ln -s /usr/python/bin/python3 /usr/bin/python3

最后就成功拉~

[pan@pdy ~]$ python3 --version
Python 3.6.1
[pan@pdy ~]$ python --version
Python 2.7.13
[pan@pdy ~]$ python3
Python 3.6.1 (default, Jun 27 2017, 14:35:15) 
[GCC 7.1.1 20170622 (Red Hat 7.1.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 2+3
5
>>> 
2019-06-17 22:34:54 xie_qi_chao 阅读数 607
  • Linux操作系统介绍

    1.Jeesite 4.0介绍与安装、 2.jeesite4.0 Eclipse 常用快捷键、 3.jeesite4.0文件结构与配置、 4.jeeiste4.0 内置模块与内置组件应用、 5.jeesite4.0代码生成器的应用、 6.jeesite4.0 Spring Boot快速入门、 7....

    19197课时 0分钟 471人学习 陈贺群
    免费试看

centos7默认是装有python的,咱们先看一下

    #检查python版本
    [root@oldboy_python ~ 17:23:54]#python -V
    Python 2.7.5

《震惊,python2.7不再维护!》
在这里插入图片描述

源码编译安装python3

安装python前的库环境,非常重要

如果要正确安装python3,且使用python3的功能,需提前解决如下的环境依赖的问题

    yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
下载python3源码包

网址:https://www.python.org/downloads/release/python-362/

下载地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

解压缩源码包
    wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
    xz -d Python-3.6.7.tar.xz
    tar -xf Python-3.6.7.tar
编译且安装

进入python源码包目录,编译且安装

    ./configure --prefix=/opt/python3/
    make && make install
configure

这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:

    ./configure --prefix=/usr

上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。

同时一些软件的配置文件你可以通过指定 —sys-config= 参数进行设定。有一些软件还可以加上 —with、—enable、—without、—disable 等等参数对编译加以控制,你可以通过允许 ./configure —help 察看详细的说明帮助。

make

这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。

如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

make 的作用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。

make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。一般情况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。

make install

这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)

配置python3环境变量
    在/etc/profile最后一行添加
    export PATH=/opt/python3/bin:$PATH
    然后
    source /etc/profile
6.1 virtualenv讲解

在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;

亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。

此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。

这里,就要隆重介绍 virtualenv,一个可以帮助我们管理不同 Python 环境的绝好工具。

virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境。

安装配置virtualenv
    #指定清华源下载pip的包
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
    #升级pip工具
    pip3 install --upgrade pip
    1.安装virtualenv
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
    2.创建目录
    mkdir Myproject
    cd Myproject
    3.创建独立运行环境-命名
    virtualenv --no-site-packages --python=python3  venv#得到独立第三方包的环境,并且指定解释器是python3
    4.进入虚拟环境
    source venv/bin/activate#此时进入虚拟环境(venv)Myproject
    5.安装第三方包
    (venv)Myproject: pip3 install django==1.9.8
    #此时pip的包都会安装到venv环境下,venv是针对Myproject创建的
    6.退出venv环境
    deactivate命令
    7.
    virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
确保开发环境的一致性
    1.假设我们在本地开发环境,准备好了项目+依赖包环境
    2.现在需要将项目上传至服务器,上线发布
    3.那么就要保证服务器的python环境一致性
    解决方案:
    1.通过命令保证环境的一致性,导出当前python环境的包
    pip3 freeze > requirements.txt   
    这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。
    可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。
    2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖
    pip3 install -r requirements.txt
6.2 virtualenvwrapper讲解

virtualenv 的一个最大的缺点就是:

每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。

并且还有可能你忘记了虚拟环境放在哪。。。

  • 一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,例如/opt/all_venv/,并且针对不同的目录做不同的事。
  • 使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,并且省去了source的步骤。
安装virtualenvwrapper
    #安装
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper
    #设置环境变量,每次开机加载virtualevnwrapper
    export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   #添加virtualenvwrapper的参数,生成干净隔绝的环境
    export VIRTUALENVWRAPPER_PYTHON=/opt/python3/bin/python3     #指定python解释器
    source /opt/python34/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
    读取文件,使得生效,此时已经可以使用virtalenvwrapper
管理虚拟环境的命令

virtualenvwrapper 提供环境名字的tab补全功能。
当有很多环境, 并且很难记住它们的名字时,这就显得很有用。

    创建一个虚拟环境:
    mkvirtualenv my_django115
    这会在 ~/Envs 中创建 my_django115 文件夹。
    激活虚拟环境my_django115
    workon my_django115
    也可以手动停止虚拟环境
    deactivate
    删除虚拟环境,需要先退出虚拟环境
    rmvirtualenv my_django115
    lsvirtualenv
    列举所有的环境。
    cdvirtualenv
    导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages 。
    cdsitepackages
    和上面的类似,但是是直接进入到 site-packages 目录中。
    lssitepackages
    显示 site-packages 目录中的内容。
2020-04-10 09:51:02 qq_36758461 阅读数 136
  • Linux操作系统介绍

    1.Jeesite 4.0介绍与安装、 2.jeesite4.0 Eclipse 常用快捷键、 3.jeesite4.0文件结构与配置、 4.jeeiste4.0 内置模块与内置组件应用、 5.jeesite4.0代码生成器的应用、 6.jeesite4.0 Spring Boot快速入门、 7....

    19197课时 0分钟 471人学习 陈贺群
    免费试看

1、修改默认python版本

mv /usr/bin/python /usr/bin/python.bak  #删除原来指向python2的软链接
ln -s /usr/local/python3.6/bin/python3.6 /usr/bin/python #将链接指向pytho3.6  

/usr/local/python3.6/bin/python3.6 这个路径为python3.6的bin文件夹下的Python3.6的路径,这个按照自己的实际情况进行更改
若你不知道路径在哪里,可以使用下面命令

python -V
python3 -V  
python36 -V  # 查看python版本
# 类似这种形式,找到你想要的设置的版本名称,然后根据名称查找位置
which python
which python3 # 查看位置

2、调用指定python版本

使用pip命令安装软件时,需要使用 pythonXX -m pip install xxx安装,例如 python36 -m pip install xxx.
你可以在 /usr/bin/python中和 /usr/local/pythonxx中找到 pythonXX/.exe文件。也就是上面which命令找到的位置。

2017-11-03 18:08:39 qq_21439971 阅读数 12656
  • Linux操作系统介绍

    1.Jeesite 4.0介绍与安装、 2.jeesite4.0 Eclipse 常用快捷键、 3.jeesite4.0文件结构与配置、 4.jeeiste4.0 内置模块与内置组件应用、 5.jeesite4.0代码生成器的应用、 6.jeesite4.0 Spring Boot快速入门、 7....

    19197课时 0分钟 471人学习 陈贺群
    免费试看

linux系统环境自带python2.6,但有时我们项目使用的版本可能是3.x以上等等,此时我们需要在linux中再安装项目所需的python版本,此时就涉及多版本共存问题了,很多同学在安装多个版本Python时会遇到各种问题,本篇文章针对python多版本共存做了详细安装说明

1.下载python安装包

打开https://www.python.org/downloads/,选择downloads>>All releases

 

这里我选择安装python3.6.1

 

选择源码安装,下载源码通过xshell拷贝到linux系统中,

在linux中,我们先进入到/opt目录中,该目录目录用来安装附加软件包

接下来,启动xshell的文件传输命令,然后将下载的源码包拖进来就行了

出现如下表示上传成功

2.解压和安装python软件包

第一步:安装python所需的依赖包

  执行命令:

1
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

 

第二步:解压python源码包

  执行命令:

1
tar -xzvf Python-3.6.1.tgz -C /usr/local/src/    #src一般用来存放源码目录

  进入到/usr/local/src/目录中

1
cd /usr/local/src/  #目录下的python-3.6.1就是解压后的源码包目录

  

  进入源码包目录:

1
cd /usr/local/src/Python-3.6.1

  配置python安装路径,记住,安装完成之后,在python3目录下有一个bin目录,/usr/local/python3/bin这个路径为将要添加的python安装的python环境变量

1
./configure --prefix=/usr/local/python3   #这里我选择将python安装到/usr/local/python3中

 

  配置检测完成之后,编译安装,执行命令:

1
make && make install

  

第三步:添加环境变量

  进入/etc/profile.d/目录下

1
cd /etc/profile.d/  

  新建一个python3.sh文件

1
vim python3.sh

  

文件内容添加环境变量,wq保存退出

  添加完环境变量之后,重载一下环境变量

1
source ../profile

  

   最后,echo一下环境变量是否添加成功

    至此,整个python安装完成