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中for循环的使用
Apr 14 Python
Python中使用Queue和Condition进行线程同步的方法
Jan 19 Python
python脚本监控docker容器
Apr 27 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
python3监控CentOS磁盘空间脚本
Jun 21 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
Nov 24 Python
python中pop()函数的语法与实例
Dec 01 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 CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
PHP explode()函数用法、切分字符串
2012/10/03 PHP
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
PHP递归的三种常用方式
2019/02/28 PHP
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
使用layer弹窗和layui表单实现新增功能
2018/08/09 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
python实现的登录和操作开心网脚本分享
2014/07/09 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
商场促销活动方案
2014/02/08 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
2014年教师德育工作总结
2014/11/10 职场文书
立项申请报告范本
2015/05/15 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript