zoukankan      html  css  js  c++  java
  • python开发笔记-Python3.7+Django2.2 Docker镜像搭建

    ***********************************************

    补充参考:Python2.7+Django1.11 Docker镜像搭建

    ubuntu16.04 在线安装docker ce

    ubuntu16.04 离线安装docker ce

    ************************************************

    目标镜像环境介绍:

    操作系统:ubuntu16.04

    python版本:python 3.7.4

    django版本:2.2

    操作步骤:

    1.  本地安装docker环境(略)
    2. 拉取ubunut指定版本镜像文件

     docker pull ubuntu:16.04

    3. 指定映射端口,启动容器

    补充启动容器注意点:
    启动的时候,加参数-t -it有区别, https://www.cnblogs.com/miracle-luna/p/11111852.html -i: 以交互模式运行容器,通常与 -t 同时使用; -t: 为容器重新分配一个伪输入终端,通常与-i 同时使用; -it --若不加该参数,运行容器,发现容器虽然创建了,但是并没有正常启动,而你执行docker start *** 的时候,发现还是不能正常启动,所以-i或-t参数也可以理解为,run容器时,必需加其中一个参数。 注意:一般加-t就可以,-i 或者 -it加上之后启动容器,在执行docker attach XXX 命令看容器输出的时候,若此时执行ctrl+C退出,会导致容器直接关闭。所以我一般习惯启动容器的时候,加-d(后台进程启动) -t 分配一个伪终端。 如下: docker run -d -p 8000:8000 --name dj22_py37 -t ubuntu:16.04

    如下图:ctrl + c 强制退出终端之后,容器并没有关闭。

    4. 进入容器,确认系统版本,安装常用包,python3.7.4 pip3 django2.2

    docker exec -u root -it dj22_py37 /bin/bash

    镜像比较干净, 镜像文件只有120M,并且里边没装python

     

    先安装zip vim 等包

    apt-get install zip
    apt-get install vim

    OK,开始安装当前最新版python3.7.4  

    下载地址:https://www.python.org/downloads/

    也可以通过如下FTP地址下载:https://www.python.org/ftp/python/3.7.4/

    下载到本地后,文件大小:

    将该文件上传到容器内部,解压:

    先安装python依赖环境:
    apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev
    
    --时间较长,耐心等待
    
    解压python压缩文件:
    tar -zxvf Python-3.7.4.tgz 
    
    解压后,进入目录:
    cd Python-3.7.4
    
    建立本地安装目录:
    mkdir -p /usr/local/python3
    
    编译安装:
    执行这步时,建议后边加上参数:--enable-optimizations 字面意思就是"开启优化",会自动安装pip3及优化配置,但是这会造成编译安装需要较长到时间,如果网络环境不稳定,或者着急使用python环境,可以不加该参数!!!
    ./configure --prefix=/usr/local/python3 --enable-optimizations
    make      #耐心等待
    make install

    到此,本地编译安装已完成

    这里由于是纯净的环境,假如同学你本地环境之前安装过python,则需要将原先/usr/bin/下的python相关链接删除,要不即使你安装了新的python,但是系统默认还会读取你原先的环境。

    通过如下命令删除旧的环境软链接配置,这块操作谨慎!!!---本地原先没有python环境的同学,可以忽略如下步骤,跳过执行下一步。

    rm -rf /usr/bin/python3
    rm -rf /usr/bin/pip3

    建立软链接,将本地编译安装的/user/local/python下的执行文件 指向/user/bin下

    #添加python3的软链接 
    ---如果本地环境没有装python2,也不打算用python2,可以直接将链接指向写成/usr/bin/python,也是可以的,这样每次进入终端环境或者运行程序,直接输入python就可以,但是还是建议2和3区分开指向。
    ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
    #添加 pip3 的软链接
    ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

    验证版本:

    root@c3af9f44f7f7:/# python3 -V
    Python 3.7.4
    root@c3af9f44f7f7:/# pip3 -V
    pip 19.0.3 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)

    OK,至此,python3.7.4 环境安装完成。

    下一步开始安装:django 2.2

    参考官方文档:https://www.djangoproject.com/download/

    因为我们上边安装的是pip3,所以安装命令需要改成如下:

    pip3 install Django==2.2.4

    安装完成后,查看Django版本

    python3
    import django 
    django.get_version()

    安装django框架下,python连接postgresql的驱动: psycopg2

    pip3 install psycopg2
    直接安装出现如下错误:

    网络查找ubuntu环境下,报错原因:---小伙伴们注意,如下处理方式只适用于解决ubunut下的安装异常,对于其他系统的异常如下内容请作选择性参考!!!

    Error: pg_config executable not found.
    pg_config is in postgresql-devel (libpq-dev in Debian/Ubuntu)
    
    1)安装libpq-dev
    apt-get install libpq-dev python-dev
    2)然后重新执行:
    pip3 install psycopg2
    
    ------------------------------------------------------
    root@c3af9f44f7f7:/# pip3 install psycopg2
    Collecting psycopg2
      Using cached https://files.pythonhosted.org/packages/5c/1c/6997288da181277a0c29bc39a5f9143ff20b8c99f2a7d059cfb55163e165/psycopg2-2.8.3.tar.gz
    Installing collected packages: psycopg2
      Running setup.py install for psycopg2 ... done
    Successfully installed psycopg2-2.8.3
    You are using pip version 19.0.3, however version 19.2.1 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    root@c3af9f44f7f7:/# 

    验证版本:

    OK, 至此基础环境已经配置完成。

     
    我们将镜像提交,打包,这样团队其他小伙伴,就可以直接应用了,并且保证了大家的基础开发环境一致,并且还有个好处,如果线上生产环境是docker部署的话,这个镜像还可以直接应用于后续的生产环境。
    docker commit c3af9f44f7f7 dj22_py37:1.0
    ---耐心等待

    镜像创建成功,可以打包备份:

    docker save dj22_py37:1.0  -o  /home/dj22_py37.tar 
  • 相关阅读:
    Windows Server 2012 64bit RMAN异机不完全恢复(迁移)
    dbms_jobs vs. dbms_scheduler_jobs
    Migrating from dbms_job to dbms_scheduler
    ORA-12537: TNS:connection closed
    win7 ins 30131 oracle 12c
    Vector源码分析
    LinkedList源码分析
    ArrayList源码分析
    jsp 显示日期
    Spring data redis 使用 pipelined 批量操作
  • 原文地址:https://www.cnblogs.com/hellojesson/p/11550638.html
Copyright © 2011-2022 走看看