zoukankan      html  css  js  c++  java
  • Linux编译安装Python3、虚拟环境及工具管理

    安装Python3

    下载python3源码

    1.cd  /opt

    2.wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

    3.安装python3前的库环境  不然后边安装库各种坑

    1 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
    1 注意:有时候会报错yum进程被锁,注意yum只能只有一个进程在安装
    2 
    3 ps -ef|grep yum
    4 
    5 在kill杀掉就是了

    4.解压缩

    1 tar -xvf Python-3.7.0.tgz 

    5.编译且安装

        1.释放编译文件makefile,就是用来编译安装的

    1 ./configure --prefix=/opt/python37/

      --prefix指定软件的安装路径  

      2.执行make命令编译       等的久慢慢等待

      3.编译且安装执行make install    生成python37文件

      4.配置python3.7的环境变量

          1.配置软连接  ln -s 目标文件 软连接文件

    1 ln -s /opt/python37/bin/python3.7 /usr/bin/python3     
    1 ln -s /opt/python37/bin/pip3 /usr/bin/pip3

          2.配置path环境变量(这个好点因为要用到pip3安装呢后边)

          查看环境变量值:echo $PATH           

    1 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python37/bin
    2 
    3 # 在/etc/profile最后一行添加
    4 # export PATH=$PATH:/opt/python37/bin
    5 # 然后source /etc/profile

     安装虚拟环境

     1.安装virtualenv

    1 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv

    2.创建虚拟环境目录

    1 mkdir myenv
    2 
    3 cd myenv/

    3.创建独立运行环境

    1 virtualenv --no-site-packages --python=python3  venv#得到独立第三方包的环境,并且指定解释器是python3

    4.然后读一下activate--->激活    

    5.deactivate--->退出

    6.其实可以自己先测试下  开两个项目跑一下 我直接退出了

    对比下环境变量的改变:

     确保环境一致性

     1 解决方案:
     2 1.通过命令保证环境的一致性,导出当前python环境的包
     3 pip3 freeze > requirements.txt   
     4 
     5 这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。
     6 可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。
     7 
     8 
     9 2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖
    10 pip3 install -r requirements.txt

     安装虚拟环境管理工具virtualenvwrapper

    1 # 安装这个命令 必须在物理解释器底下。
    2 [root@localhost myenv]# pip3 install virtualenvwrapper 
    1 pip3 install -i http://pypi.douban.com/simple virtualenvwrapper --trusted-host pypi.douban.com

    设置linux环境变量,每次开机自动加载这个工具

    export读取shell变量的作用

     1 编辑 ~/.bashrc文件
     2 打开文件
     3 vim ~/.bashrc
     4 写入以下两行代码
     5 export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录
     6 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   #添加virtualenvwrapper的参数,生成干净隔绝的环境
     7 export VIRTUALENVWRAPPER_PYTHON=/opt/python37/bin/python3     #指定python解释器
     8 source /opt/python37/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
     9 读取文件,使得生效,此时已经可以使用virtalenvwrapper
    10 source ~/.bashrc

    配置完就可以看到家目录Envs

    创建虚拟环境

    1 mkvirtualenv prodenv

    查看虚拟环境有哪些

    1 workon

    直接激活环境

    1 workon prodenv

     其它命令

     1 rmvirtualenv prodenv
     2 删除虚拟环境
     3 
     4 lsvirtualenv
     5 列举所有的环境。
     6 
     7 cdvirtualenv
     8 导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages 。
     9 
    10 cdsitepackages
    11 和上面的类似,但是是直接进入到 site-packages 目录中。
    12 
    13 lssitepackages
    14 显示 site-packages 目录中的内容。
    15 
    16 完整官网介绍:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

     之后我发现一个问题再次创建虚拟环境的时候就报错了,报错信息

    解决:我这是centos7的解决方式

    更新pip: 这是pip多版本造成的

    1 python3 -m pip install -U pip

    为了确保万一我又从新试了下:搞定

    在ubuntu上操作可能报一些依赖错关于什么ctypes找不到

    解决方案

    1 sudo apt-get update
    2 sudo apt-get upgrade
    3 sudo apt-get dist-upgrade
    4 sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
    5 sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
    6 sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
    7 sudo apt-get install libssl-dev openssl
    8 sudo apt-get install libffi-dev

    可以看python

    ls -l /usr/bin | grep python

     

  • 相关阅读:
    dremio mysql arp integer 超出最大值的问题
    cube.js bi connector 实现说明
    cube.js 最新版本特性
    PLSQL Developer使用大全
    Git回滚Merge
    建模与外化:操纵抽象的能力
    Oc的异常触发
    iOS开发:Release/Debug模式与Configuration
    技术解耦和团队解耦
    头文件的作用—声明符号、类型、函数而不是定义变量
  • 原文地址:https://www.cnblogs.com/Alexephor/p/11364764.html
Copyright © 2011-2022 走看看