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守护进程(daemon)代码实例
Mar 06 Python
Python实现单词拼写检查
Apr 25 Python
Python全局变量用法实例分析
Jul 19 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
pip指定python位置安装软件包的方法
Jul 12 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
Jan 03 Python
Python timer定时器两种常用方法解析
Jan 20 Python
Python jieba结巴分词原理及用法解析
Nov 05 Python
使用Python webdriver图书馆抢座自动预约的正确方法
Mar 04 Python
Python OpenCV形态学运算示例详解
Apr 07 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加Nginx实现动态裁剪图片方案
2014/03/10 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
Django中处理出错页面的方法
2015/07/15 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
Django中的cookie和session
2019/08/27 Python
python argparser的具体使用
2019/11/10 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
大学生求职信范文
2014/05/24 职场文书
PyTorch 如何自动计算梯度
2021/05/23 Python
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
java设计模式--七大原则详解
2021/07/21 Java/Android