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命令行参数sys.argv使用示例
Jan 28 Python
Python xlrd读取excel日期类型的2种方法
Apr 28 Python
基于python实现的抓取腾讯视频所有电影的爬虫
Apr 22 Python
python分块读取大数据,避免内存不足的方法
Dec 10 Python
python中partial()基础用法说明
Dec 30 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 Python
Python xlrd模块导入过程及常用操作
Jun 10 Python
python对execl 处理操作代码
Jun 22 Python
序列化Python对象的方法
Aug 01 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
如何通过python检查文件是否被占用
Dec 18 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中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
PHP中使用BigMap实例
2015/03/30 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
实测jquery data()如何存值
2013/08/18 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
python线程中同步锁详解
2018/04/27 Python
Python设计模式之工厂方法模式实例详解
2019/01/18 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
python中pop()函数的语法与实例
2020/12/01 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
会议邀请函范文
2014/01/09 职场文书
校园广播稿100字
2014/10/06 职场文书
内乡县衙导游词
2015/02/05 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
怎样写观后感
2015/06/19 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang