CentOS6.5设置Django开发环境


Posted in Python onOctober 13, 2016

今天在我的Centos6.5机器上安装 Django 开发环境,在安装完使用 “django-admin.py startproject myapp” 创建应用的时候报了下面的错误

$ django-admin.py startproject myapp
Traceback (most recent call last):
 File "/home/jhadmin/myenv/bin/django-admin.py", line 2, in <module>
 from django.core import management
 File "/home/jhadmin/myenv/lib/python2.6/site-packages/django/__init__.py", line 1, in <module>
 from django.utils.version import get_version
 File "/home/jhadmin/myenv/lib/python2.6/site-packages/django/utils/version.py", line 7, in <module>
 from django.utils.lru_cache import lru_cache
 File "/home/jhadmin/myenv/lib/python2.6/site-packages/django/utils/lru_cache.py", line 28
 fasttypes = {int, str, frozenset, type(None)},
  ^
SyntaxError: invalid syntax

检查一下,发现是我机器上的 python 版本太老,CentOS6.5的 Python 是2.6.6,而最新的 django (1.8.4)要求的 Python 版本是2.7.x,本想着升级一下自己机器的 Python,又怕会对别的应用有影响,正犯愁呢,突然想到可以使用 Docker 来解决我碰到问题。下面就是我使用 Docker 搭建的 django 开发环境的步骤。

首先创建一个目录,用来存放 Docker 的配置文件,这里我就叫 django_env。

在 django_env 目录下创建一个 Dockerfile 文件,文件内容如下

FROM centos:centos7

MAINTAINER Fanbin Kong "kongxx@hotmail.com"

RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install -y openssh-server sudo supervisor python-pip

RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config

RUN echo "root:Letmein" | chpasswd

RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN mkdir /var/run/sshd

RUN pip install django

RUN mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisord.conf
 
EXPOSE 22 
CMD ["/usr/bin/supervisord"]

考虑到后面会在 Docker 里启动多个服务,所以还是用到了supervisor,创建一个 supervisord.conf 文件,内容如下

[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D

在 django_env 目录下运行下面命令来生成容器镜像

sudo docker build -t django_env .

根据容器镜像生成容器

sudo docker run -v /home/kongxx/mywork:/data --name=test -d -P django_env

这里使用了 “-v /home/kongxx/mywork:/data”,目的是为了可以在宿主机器和容器中共享代码

容器生成后,可以使用 “sudo docker inspect test | grep IPAddress” 命令来查看容器的 IP 地址。然后使用 ssh 来登录这个容器

ssh root@<container_ip>

登录到容器后,我们就可以运行 django 命令来创建和启动应用了,如下

cd /data
django-admin.py startproject myapp
cd myapp
python manage.py runserver 0.0.0.0:8000

此时,在浏览器里访问 http://:8000 即可看到服务已经运行了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python的Django框架完成视频处理任务的教程
Apr 02 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
python实现批量图片格式转换
Jun 16 Python
详解Pandas之容易让人混淆的行选择和列选择
Jul 10 Python
python opencv实现证件照换底功能
Aug 19 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
Python networkx包的实现
Feb 14 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
2021年值得向Python开发者推荐的VS Code扩展插件
Jan 25 Python
python实现简易自习室座位预约系统
Jun 30 Python
Python判断某个用户对某个文件的权限
Oct 13 #Python
python使用str &amp; repr转换字符串
Oct 13 #Python
PYTHON 中使用 GLOBAL引发的一系列问题
Oct 12 #Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
Oct 12 #Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 #Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 #Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 #Python
You might like
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
laravel 数据验证规则详解
2019/10/23 PHP
javascript打印html内容功能的方法示例
2013/11/28 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
使用jquery组件qrcode生成二维码及应用指南
2015/02/22 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
深入浅出分析Python装饰器用法
2017/07/28 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
名片管理系统python版
2018/01/11 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
继电保护工岗位职责
2014/01/05 职场文书
大学生志愿者感言
2014/01/15 职场文书
上班上网检讨书
2014/01/29 职场文书
大学社团活动总结
2014/04/26 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
学生违纪检讨书200字
2014/10/21 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技