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多进程机制实例详解
Jul 02 Python
Python多线程爬虫简单示例
Mar 04 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
基于Django用户认证系统详解
Feb 21 Python
python3处理含有中文的url方法
May 10 Python
使用Python 统计高频字数的方法
Jan 31 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 Python
Python任务调度模块APScheduler使用
Apr 15 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
Sep 05 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
Feb 06 Python
正确的理解和使用Django信号(Signals)
Apr 14 Python
python flask开发的简单基金查询工具
Jun 02 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利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
Angular2里获取(input file)上传文件的内容的方法
2017/09/05 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
[05:13]TI4 中国战队 机场出征!!
2014/07/07 DOTA
Python+PIL实现支付宝AR红包
2018/02/09 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
Python-split()函数实例用法讲解
2020/12/18 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
班组长工作职责
2013/12/25 职场文书
库房保管员岗位职责
2014/04/07 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
在人间读书笔记
2015/06/30 职场文书
教师学习中国梦心得体会
2016/01/05 职场文书
MySQL派生表联表查询实战过程
2022/03/20 MySQL