python开发笔记-Python3.7+Django2.2 Docker镜像搭建
***********************************************
补充参考:Python2.7+Django1.11 Docker镜像搭建
************************************************
目标镜像环境介绍:
操作系统: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 commit c3af9f44f7f7 dj22_py37:1.0
---耐心等待

镜像创建成功,可以打包备份:
docker save dj22_py37:1.0 -o /home/dj22_py37.tar
python开发笔记-Python3.7+Django2.2 Docker镜像搭建的更多相关文章
- PyCharm使用之利用Docker镜像搭建Python开发环境
在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...
- python开发笔记-通过xml快捷获取数据
今天在做下python开发笔记之如何通过xml快捷获取数据,下面以调取nltk语料库为例: import nltk nltk.download() showing info https://raw.g ...
- 傲视Kubernetes(二):Docker镜像搭建与本地Kubernetes环境搭建
主要内容: 1.Docker与Kubernetes的关系 2.SpringBoot微服务的Docker镜像创建 3.Kubernetes本地环境搭建 一.Docker与Kubernetes的关系 在说 ...
- python开发笔记-python调用webservice接口
环境描述: 操作系统版本: root@9deba54adab7:/# uname -a Linux 9deba54adab7 --generic #-Ubuntu SMP Thu Dec :: UTC ...
- Python学习笔记 (1)Hello World(环境搭建+输出Hello World!)
随想 高考发挥失常.科三遇火车发挥失常,各种不顺……突然发现假期都快没了,才想起高考前想象的这个假期要做的一堆事,现在来多完成一件吧. 这几篇博客仅只是我的学习笔记,凑合看吧.我这个python小白看 ...
- Docker笔记(四):Docker镜像管理
原文地址:http://blog.jboost.cn/2019/07/16/docker-4.html 在Docker中,应用是通过容器来运行的,而容器的运行是基于镜像的,类似面向对象设计中类与对象的 ...
- 《第一本Docker书》学习笔记——第4章 使用Docker镜像和仓库
4.2 列出镜像 使用docker images命令: sudo docker images 本地镜像都保存在Docker宿主机的/var/lib/docker目录下. 也可以在/var/lib/do ...
- TensorFlow(1):使用Docker镜像搭建TensorFlow环境
1,关于TensorFlow TensorFlow 随着AlphaGo的胜利也火了起来. google又一次成为大家膜拜的大神了.google大神在引导这机器学习的方向. 同时docker 也是一个非 ...
- Docker镜像搭建Linux下samba共享目录
Samba 是 SMB/CIFS 网络协议的重新实现, 它作为 NFS 的补充使得在 Linux.OS/2.DOS 和 Windows 系统中进行文件共享.打印机共享更容易实现.SMB协议是客户机/服 ...
随机推荐
- ExtendEvent-判断DB是否有在使用
判断一个DB是否在被使用,需要观察一段时间,创建一个扩展事件会话,收集该DB是否有执行SQL即可. 创建会话 CREATE EVENT SESSION [DB_Usage] ON SERVER ) A ...
- Docker 0x02: Docker生态
目录 Docker生态 Docker官网 0x00 网址 Docker组件 0x01. docker-client 与 docker-daemon 0x02. docker镜像 0x03. docke ...
- linux开发中常用的命令及技巧(连载)
1.在内核或uboot目录下搜索相关内容/文件名时:grep "USB" * -nR find -name "*USB*" 2.查看系统中设备 cat /pr ...
- Linux 环境变量配置错误,导致所有命令找不到
今天配置环境变量,PATH设置出错,所有的命令都找不到了,提示说在/usr/bin/下面可以找到,但是cd过去以后还是不行,自己也在其他路径上找了,还是没找到 而且是公司开发机,怕耽误事儿,着实吓了一 ...
- nohup-长期运行进程
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败. 解决办法: 当用户注销(logout)或者网 ...
- Centos7下的日志切割--转发
logrotate /etc/logrotate.conf 是 Logrotate 工具的一个配置文件,这个工具用来自动切割系统日志,Logrotate 是基于 cron 来运行的,如下: [root ...
- Httpd服务入门知识-Httpd服务常见配置案例之日志设定
Httpd服务入门知识-Httpd服务常见配置案例之日志设定 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志类型 [root@node101.yinzhengjie.org ...
- Cobbler本机使用VM装机配置方法
一.需要在本地VM虚拟机上安装好Cobbler服务 安装服务及配置方法参见链接:https://www.cnblogs.com/cyleon/p/11460061.html 二.本地配置VM网络 网络 ...
- 说说openjdk及G1回收器日志内容详细分析
谈谈openjdk: 在正式往下学习JVM之前,这里谈谈openjdk这个网站,这个在学习java并发时也用过它来分析过锁的底层实现,如:https://www.cnblogs.com/webor20 ...
- spring-mvc.xml 和 application-context.xml的配置与深入理解
在java框架这个话题,前几篇文章是基于搭建ssm项目框架,以及web.xml的配置讲解,本篇主要就ssm框架的其他配置文件进行深入讲解,他们分别是:1.application-context.xml ...