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设置socket代理的方法
Jan 14 Python
python框架django基础指南
Sep 08 Python
Python 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
Aug 23 Python
Python中 传递值 和 传递引用 的区别解析
Feb 22 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
PyTorch中的padding(边缘填充)操作方式
Jan 03 Python
Pycharm激活方法及详细教程(详细且实用)
May 12 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
Oct 19 Python
Python性能测试工具Locust安装及使用
Dec 01 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 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
php Ajax乱码
2008/04/09 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
微信、QQ、微博、Safari中使用js唤起App
2018/01/24 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
基于python实现计算两组数据P值
2020/07/10 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
python os.listdir()乱码解决方案
2021/01/31 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
个性发展自我评价
2014/02/11 职场文书
党建示范点实施方案
2014/03/12 职场文书
党员干部承诺书范文
2014/03/25 职场文书
新春文艺演出主持词
2014/03/27 职场文书
班级学习计划书
2014/04/27 职场文书
产品质量保证书
2014/04/29 职场文书
关于运动会的口号
2014/06/07 职场文书
感恩的心主题班会
2015/08/12 职场文书