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脚本
Sep 01 Python
Python中数字以及算数运算符的相关使用
Oct 12 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
Python的条件表达式和lambda表达式实例
Jan 31 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
python对象销毁实例(垃圾回收)
Jan 16 Python
tensorflow使用指定gpu的方法
Feb 04 Python
python函数定义和调用过程详解
Feb 09 Python
Python中如何引入第三方模块
May 27 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
python Autopep8实现按PEP8风格自动排版Python代码
Mar 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
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
Vue父子传递实例讲解
2020/02/14 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
Django实现单用户登录的方法示例
2019/03/28 Python
python实现简单颜色识别程序
2020/02/19 Python
python实现随机加减法生成器
2020/02/24 Python
python实现3D地图可视化
2020/03/25 Python
荷兰游戏商店:Allyouplay
2019/03/16 全球购物
士力架广告词
2014/03/20 职场文书
违章停车检讨书
2014/10/21 职场文书
预备党员入党感想
2015/08/10 职场文书