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中处理字符串之endswith()方法的使用简介
May 18 Python
python基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
详解python发送各类邮件的主要方法
Dec 22 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
Python 将Matrix、Dict保存到文件的方法
Oct 30 Python
python+opencv实现阈值分割
Dec 26 Python
python and or用法详解
Jun 26 Python
jenkins配置python脚本定时任务过程图解
Oct 29 Python
Python面向对象魔法方法和单例模块代码实例
Mar 25 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
May 10 Python
这样写python注释让代码更加的优雅
Jun 02 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
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
微信支付开发交易通知实例
2016/07/12 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
js模糊查询实例分享
2016/12/26 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
Python实现KNN邻近算法
2021/01/28 Python
python实现内存监控系统
2021/03/07 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
django使用admin站点上传图片的实例
2019/07/28 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
Python ellipsis 的用法详解
2020/11/20 Python
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
国家助学金获奖感言
2014/01/31 职场文书
企业活动策划方案
2014/06/02 职场文书
运动会横幅标语
2014/06/17 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
活动费用申请报告
2015/05/15 职场文书
故意伤害辩护词
2015/05/21 职场文书