简介
在最近的一些实验中要用到python3和django搭建的web开发环境。目前python中django的开发主要使用的还是python2,而对python3的使用和支持还相对少一点。因此在安装和配置的过程中碰到不少的问题。这里将问题和解决的方法一并记下来,方便以后使用。
系统环境
这里安装配置的系统为ubuntu12.04 lts。需要安装的组件有python3.4, django 1.6.2, mysql 5.5。
安装python3
在ubuntu 12.04的版本里默认没有安装python3,于是我们可以考虑手工安装和配置python3。目前最新的python3版本是python3.4。我们会选择编译源代码安装的方式。首先我们去python的官网 www.python.org。在页面上选择Download,然后选择Python3.4.0,如下图所示:
安装依赖库
在编译安装python3.4之前,我们需要首先装几个必要的库。因为后续在装完python3.4之后我们需要装pip3,这些对这几个库有依赖的关系。我们在命令行执行如下命令:
sudo apt-get install build-essential libncursesw5-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev
一些在ubuntu下安装过python3的人会发现一个问题,就是每次在python3启动后的命令行交互模式下,如果我们移动键盘上的上下左右键,在屏幕上会打印出来一系列的字符,这其实并不是我们所期望的。为了解决这个问题,我们可以安装如下的组件:
sudo apt-get install libreadline-dev
解压和安装python3.4
首先解压我们下载的python包:
tar -xvf Python-3.4.0.tar.xz
然后进入解压的包:
cd Python-3.4.0/
准备编译python包:
./configure
编译代码:
make
测试编译后的结果:
make test
安装python3.4
sudo make install
我们也可以将前面的安装步骤合并成一步:
./configure && make && sudo make install
这个时候如果我们输入命令python3,则会出现如下的界面:
如果我们留意一下刚才安装python3.4的过程,我们会发现输出的结果里显示如下:
因为我们事先安装好了一些依赖的包,这里在安装python的过程中就顺便把pip给安装好了。而pip是我们安装依赖python包的基本工具,正好一举两得。
安装django
django的安装过程其实比较简单,我们前面安装好的pip在命令行里对应的是pip3。这个时候安装django只需要一个命令:
sudo pip3 install django
因为安装python软件包需要系统管理员级别的权限,所以这里需要sudo命令。这里是针对初次安装django的情况。安装的时候会去找最新版的django下载。对于我们如果需要升级安装的话,则使用如下的命令行:
sudo pip3 install --upgrade django
安装mysql
关于mysql的安装和配置,可以参考我的这一篇博客。在原文里描述了如何安装和配置的全过程。另外,对于我们具体环境的安全需要,我们有必要删除系统安装时默认创建的匿名帐号。
我们可以运行如下两个命令:
sudo mysql_install_db
sudo mysql_secure_installation
运行该命令的时候会给出一系列的提示,比如是否删除匿名用户,是否运行root用户远程登录等。
配置数据库访问驱动
这是另外一个比较让人头疼的问题。在python2的环境里,我们有很多支持良好的驱动,比如mysql-python等。但是在python3的环境下访问mysql的驱动很少。目前比较理想的有Mysql connector/Python。关于Mysql connector的安装,我们可以到如下网址去下载:
http://dev.mysql.com/downloads/connector/python/
值得注意的一点是,我们如果需要下载的mysql connector支持python3,选择支持的平台时必须选择平台无关的这个选项,如下图:
这样,我们下载到本地的是一个包含python脚本的包。我们接着解压和安装它们:
tar xvf mysql-connector-python-1.1.6.tar.gz cd mysql-connector-python-1.1.6 sudo python3 setup.py install
运行完这些命令之后我们在命令行里再来验证它:
我们可以看到mysql.connector包可以被正常的引用而不会出错。
Django配置项变化
在以往我们使用django项目的时候一般都是python2的,所以当我们修改django项目里的settings.py时,使用给定的那几种数据库样式就可以了。可惜我们这里装的是mysql connector而不是默认的python-mysql,所以在settings.py的数据库配置部分需要做一些修改,一个典型的修改部分如下:
DATABASES = { 'default': { 'NAME': 'user_data', 'ENGINE': 'mysql.connector.django', 'USER': 'mysql_user', 'PASSWORD': 'password', 'OPTIONS': { 'autocommit': True, }, } }
这里和前面的配置的一个重点区别在于'ENGINE'这一项。不是默认的'django.db.backends.mysql'这样。
总结
配置python3+django+mysql的开发环境目前还是比较麻烦的,有很多东西都不是系统提供默认的支持。需要手动的来修改和配置很多东西。如果我们使用一些更新版本的ubuntu系统,有的已经提供命令行的直接安装支持了。以后的安装配置肯定会越来越简单好用。
参考材料
https://groups.google.com/forum/#!topic/django-developers/8r_RVmUe5ys
https://www.python.org/
http://dev.mysql.com/doc/connector-python/en/connector-python-django-backend.html
相关推荐
搭建apache+python+django+MySQL Web开发环境.docx
详细描述Ubuntu下如何搭建python的web开发环境
本项目是一款在Ubuntu 18.04操作系统环境下开发的论坛应用源码,主要采用Python 3.6.6编程语言,搭配Django 1.11.4框架进行构建。源码包含13个Python文件,5个HTML模板文件,4张PNG图片资源,以及其他配置和样式文件...
Django的Linux搭建开发教程,整体非常细致,项目搭建从零到一,最后实现真正的服务器环境部署,适用开发环境为Ubuntu,认真按照教程走,几乎不需要查其余资料,方便快捷,你值得拥有!
#如果不指定python版本,默认安装的是python2的虚拟环境,目前世界上大部分都是python3了所以推荐使用python3 sudo apt-get update sudo apt-get upgrade sudo apt-get install python sudo apt-get install python-...
一、开发环境 macOS Catalina 10.15.3 Python 3.8.0 Django 3.0.5 Pycharm 2019.2.3 mysql 8.0.19 virtualenv 基本使用的都是当前最新版本的环境,开发过程中肯定会遇到很多环境问题,让我们一起想办法解决吧。 而...
例如项目可以在基于 Python2.7 的环境中运行,而项目 B 可以在基于Python3.x 的环境中运行。在 Python 中通过 virtualenv 工具管理虚拟环境。 另外在 win 或者 mac 上也是极力推荐安装虚拟环境来管理你的 Python ...
本系列以可操作性为主,介绍如何通过django web框架来实现一些简单的功能。每一章都具有完整性和独立性。使用新手在动手做的过程中体会web开发的过程,过程中细节请参考相关文档。 本操作的环境: ================...
构建基块是:Python 3.6+ Django 3 PostgreSQL或MySQL设置用于开发这些是在开发环境中设置healthcheck Django应用程序的说明。 安装依赖项(Debian / Ubuntu)$ sudo apt-get更新$ sudo apt-get install -y gcc ...
球拍Python和Django网球拍穿线CMS动机我给网球拍穿线... 在Ubuntu 20.04机器上: sudo apt install gcc postgresql-12 libpq-dev python3-venv python3-dev创建一个数据库内部Postgres: CREATE ROLE <role> WITH LOGI
本系统的开发环境如下:操作系统为 Windows 10;开发平台为 PyCharm;数据库为 MySQL5.7。生产环境如下:云服务:腾讯云服务;操作系统为 Ubuntu 1604;内存为 2G;数据库为 MySQL5.7。 普通用户:普通用户可以注册...
它位于此处:http://healthchecks.io/ 构建块是:Python 3.6+ Django 3 PostgreSQL 或 MySQL 开发设置 这些是在开发环境中设置健康检查 Django 应用程序的说明。 安装依赖项 (Debian/Ubuntu) $ sudo apt-get ...
设置Healthchecks开发环境: 安装依赖项(Debian / Ubuntu): $ sudo apt-get update $ sudo apt-get install -y gcc python3-dev python3-venv libpq-dev 为项目代码和virtualenv准备目录。 随意使用其他位置:...
Dockerfiles创建用于在本地Django开发环境中使用的映像。 设计用于 ,它将使事情变得容易得多。 我从现有项目中提取了大多数这些Dockerfile,并对其进行了修改以适合我的设置。 这是使用这些Docker图像的示例...
本文实例讲述了Django开发的简易留言板。分享给大家供大家参考,具体如下: Django在线留言板小练习 环境 ubuntu16.04 + python3 + django1.11 1、创建项目 django-admin.py startproject message 进入项目message...
开发环境:Ubuntu16.04+Django 1.11.9+Python2.7 一:使用自定义函数输出日志到log文件: import time def print_log(log): file_obj = open('/tmp/filename.log', 'a+') log_time = time.strftime( '[%Y-%m-%d %...
它使您可以通过单个命令设置一个可靠的Django开发环境。 其中包括一些很棒的东西: 本地开发,但是代码在共享的帮助下在Ubuntu内运行。 在和上运行的服务器。 uWSGI自动重载python代码。 已为您安装并设置了 。 ...
开发环境:Ubuntu16.04+Django 1.11.9+Python2.7 使用list对values进行求值: 单个字段的输出结果: price_info=list(Book.objects.filter(auth_id='Yu').values('book_price')) print price_info [{'book_price': 26...
Python项目开发-智慧校园考试系统设计源代码+开发文档说明资料 系统环境 Linux发行版(Ubuntu16.04 / CentOS等) MySQL 5.5以上版本 Python3.5以上版本 Redis任意新版本即可 Django版本2.1 3. 配置文件 在项目根...
带截图的详细讲解如何在新的Ubuntu系统上部署自己本地开发好的django项目,从服务器软件下载到环境配置