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 
  • 相关阅读:
    Largest Rectangle in Histogram
    Valid Sudoku
    Set Matrix Zeroes
    Unique Paths
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Path Sum II
    Path Sum
    Validate Binary Search Tree
    新手程序员 e
  • 原文地址:https://www.cnblogs.com/hellojesson/p/11550638.html
Copyright © 2011-2022 走看看