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的内存泄漏及gc模块的使用分析
Jul 16 Python
Python和GO语言实现的消息摘要算法示例
Mar 10 Python
Python操作csv文件实例详解
Jul 31 Python
Python实现进程同步和通信的方法
Jan 02 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
python 实现二维字典的键值合并等函数
Dec 06 Python
Django实现从数据库中获取到的数据转换为dict
Mar 27 Python
Python爬虫requests库多种用法实例
May 28 Python
java字符串格式化输出实例讲解
Jan 06 Python
Python 中如何使用 virtualenv 管理虚拟环境
Jan 21 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 07 Python
基于Python编写一个监控CPU的应用系统
Jun 25 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.NET的入门教程
2006/10/09 PHP
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
php与paypal整合方法
2010/11/28 PHP
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
js post提交调用方法
2014/02/12 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
Python中的choice()方法使用详解
2015/05/15 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
python列表推导式操作解析
2019/11/26 Python
Python如何读写字节数据
2020/08/05 Python
python时间time模块处理大全
2020/10/25 Python
python 发送get请求接口详解
2020/11/17 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
检察院起诉书
2015/05/20 职场文书
篮球赛新闻稿
2015/07/17 职场文书
php修改word的实例方法
2021/11/17 PHP