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简单实现子网掩码转换的方法
Apr 13 Python
python编写Logistic逻辑回归
Dec 30 Python
Python实现按中文排序的方法示例
Apr 25 Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 Python
Python3.5面向对象程序设计之类的继承和多态详解
Apr 24 Python
Django的Modelforms用法简介
Jul 27 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
Python urllib2运行过程原理解析
Jun 04 Python
python中selenium库的基本使用详解
Jul 31 Python
python中uuid模块实例浅析
Dec 29 Python
分享提高 Python 代码的可读性的技巧
Mar 03 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
杏林同学录(八)
2006/10/09 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
Linux编译升级php的详细方法
2013/11/04 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
python写的一个文本编辑器
2014/01/23 Python
Python网络编程详解
2017/10/31 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
Python实现PS滤镜中的USM锐化效果
2020/12/04 Python
如何通过python检查文件是否被占用
2020/12/18 Python
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
历史专业学生的自我评价
2014/02/28 职场文书
销售队伍口号
2014/06/11 职场文书
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android