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 相关文章推荐
django1.8使用表单上传文件的实现方法
Nov 04 Python
python 爬虫出现403禁止访问错误详解
Mar 11 Python
Python OpenCV实现图片上输出中文
Jan 22 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
Jun 03 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
Aug 05 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
python利用tkinter实现图片格式转换的示例
Sep 28 Python
如何向scrapy中的spider传递参数的几种方法
Nov 18 Python
基于flask实现五子棋小游戏
May 25 Python
python使用torch随机初始化参数
Mar 22 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
德劲1107的电路分析与打磨
2021/03/02 无线电
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
javascript 面向对象编程 聊聊对象的事
2009/09/17 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
Sea.JS知识总结
2016/05/05 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
Python中使用asyncio 封装文件读写
2016/09/11 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
python随机数分布random测试
2018/08/27 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
python3获取url文件大小示例代码
2019/09/18 Python
python with语句的原理与用法详解
2020/03/30 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
Python中Yield的基本用法
2020/10/18 Python
python3中for循环踩过的坑记录
2020/12/14 Python
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
企业财务经理岗位职责
2015/04/08 职场文书
教师读书活动心得体会
2016/01/14 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python