Python 3.6.1+Django 1.11+MySQL 5.7.18 开发环境搭建(mac os)(一)

来源:互联网 发布:詹姆斯2016总决赛数据 编辑:程序博客网 时间:2024/06/11 01:04

前言

这段时间在做一个基于B/S的信息管理平台,在迪总的安排下,我和文涛同学负责后端的开发。在项目开始就确定了Python+Django+MySQL环境,在几次试验以后确定了版本,采用Python 3.6.1+Django 1.11+MySQL 5.7.18 作为开发环境。本文主要总结该环境搭建的步骤和经验,主要参考了自强学堂 和廖雪峰的官方网站的教程。


Python 3.6.1 的安装

安装 Python 之前首先得明确 Python 3.x 与 Python 2.x 有很大的不同,两者要分开看待。这里我们选择 Python 3.6.1 ,它是属于 Python 3.x,所以整个语法上是参考了自强学堂 Python 3 的教程。

下载 Python 3.6.1

可以从官网上下载安装包及文档:
Python官网:http://www.python.org/
Python文档下载地址:http://www.python.org/doc/

安装 Python 3.6.1

配置环境变量

运行 Python

从教程上看有3种运行方式:交互式解释器运行、命令行脚本运行、集成开发环境运行(本文后面介绍 Pycharm)。为安装验证和简单使用,我们先学会使用交互解释器运行:

MacBook_Air:~ ww$ python3Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwinType "help", "copyright", "credits" or "license" for more information.>>>print("Hello world")  #进行输出测试Hello world              #结果>>>

出现这段文字,表示安装成功,可以看到版本。大家可以注意到我用 python3 进入解释器环境,这是由于我的 mac os 已经自带了python 2.x,而且 2.x 与 3.x 是共存的,用 python 命令的话会进入 python2.x 的环境。需注意 3.x 版本的包响应也在后面加个3,例如 pip 和 pip3。


pip 9.0.1 的使用

简单介绍

Python 有两种安装组件的方法,分别是easy_install安装和pip安装,pip是easy_install的改进版,比较老(2000年之前)的Python库要用easy_install进行安装,比较新的Python库适合用pip进行安装。做大项目应该两者都安装,我们采用pip就足够了。

验证

这里为什么直接说pip9.0.1的使用,而越过了安装,因为从文档中可以发现从Python3.4开始,它就自带了pip。前面已经有提到,要使用Python3.x的pip得用pip3这个命令:

MacBook-Air:~ ww$ pip3 -V         pip9.0.1from/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (python 3.6)

用上面的命令查看版本,我的Python3.6.1安装路径有点长,因为在安装过程中没找到该路径的方法,以后再完善。

使用

从Pypi网站自动下载并安装组件:

pip3 install tornadopip3 install tornado=1.0.8     #安装到指定版本pip3 install -U tornadopip3 install -U tornado=1.0.8  #升级到指定版本 pip3 uninstall tornadopip3 search framework          #查看所有与“framework”关键字相关的组件pip3 help

建议暂时不安装各个组件,在后面的虚环境中再安装。


用 virtualevn 创建虚环境

鉴于一个电脑上可能有多个项目,而每个项目可能使用不同的Python版本和组件版本(如Django 1.8 和 Django 1.11),我们采用虚环境来解决这个问题。

安装virtualenv

pip3 install virtuallenv

验证

MacBook-Air:~ ww$ virtualenv --version15.1.0

可以看出显示版本为15.1.0。

创建目录

MacBook-Air:~ ww$ mkdir JerryMacBook-Air:~ ww$ cd Jerry/MacBook-Air:Jerry ww$ 

在该目录下创建一个独立的Python运行环境,命名为venv

MacBook-Air:Jerry ww$ virtualenv -p python3 --no-site-packages venv...Installing setuptools, pip, wheel...done.

命令virtualenv就可以创建一个独立的Python运行环境,我们用-p python3 指定了虚环境用的Python版本,还加上了参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。

新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境:

MacBook-Air:Jerry ww$ source ./venv/bin/activate(venv) MacBook-Air:Jerry ww$

注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venvPython环境。

下面正常安装各种第三方包,并运行python命令:

(venv) MacBook-Air:Jerry ww$ pip install jinja2...Successfully installed MarkupSafe-1.0 jinja2-2.9.6(venv) MacBook-Air:Jerry ww$ pythonPython 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwinType "help", "copyright", "credits" or "license" for more information.>>>

可以看到在venv这个虚环境下,直接用python 命令就可进入Python3.6.1的环境。而且在该环境下,用pip 安装的包都在venv 这个环境中,系统Python不受影响,可以说venv 是专门为Jerry 这个项目而定制的。退出vendeactivate

(venv) MacBook-Air:Jerry ww$ deactivateMacBook-Air:Jerry ww$

现在就回到了正常环境。从廖雪峰的Python教程可以看到:

完全可以针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离。
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。

自强学堂讲到: 用 virtualenv 来建立多个开发环境,virtualenvwrapper 使得virtualenv变得更好用 ,关于virtualenvwrapper 以后再了解。


Django 1.11 的安装和使用

安装

Django是Python的一个组件,既然有了确定Python版本的虚环境venv,我们就可以给这个环境安装指定版本的组件Django3.6.1(注意是装在虚环境中,可以为不同的虚环境安装各自的不同版本的组件)。

$ pip install Django==1.11...Successfully installed Django-1.11 pytz-2017.2

创建Django项目

$ django-admin startproject Jerry_site   #Jerry_site是项目名

创建app

$ cd Jerry_site/   #进入项目目录$ python manage.py startpap demo   #demo为项目名称

一般一个项目有多个app, 当然通用的app也可以在多个项目中使用(还没试过)。
现在可以看下项目的目录结构:

-  Jerry_site    -  Jerry_site         - __init__.py           - __pycache__           - settings.py           - urls.py               - wsgi.py      -  demo         - __init__.py           - migrations            - models.py             - tests.py          - views.py             -  manage.py

同步数据库

Django中自带了数据库sqlite,我们用以下命令操作:

$python manage.py makemigrations$python manage.py migrate

makemigrations相当于在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件。migrate将该改动作用到数据库文件,比如产生table之类。
这次启动服务器之前先同步数据库,否则会有警告。

使用开发服务器

$ python manage.py rumserver   #使用默认地址和端口127.0.0.1:8000$ python manage.py rumserver 8001   #指定端口$ python manage.py rumserver 127.0.0.1:8002   #指定地址和端口

启动:

(venv) MacBook-Air:Jerry_site ww$ python manage.py runserverPerforming system checks...System check identified no issues (0 silenced).April 27, 2017 - 02:06:35Django version 1.11, using settings 'Jerry_site.settings'Starting development server at http://127.0.0.1:8000/Quit the server with CONTROL-C.

在浏览器输入127.0.0.1:8000可见:

测试成功
至此我们的项目已经能跑起来,还有数据库没有更换到MySQL。

几个有用的命令

python manage.py flush #此命令会询问是 yes 还是 no, 选择 yes 会把数据全部清空掉,只留下空表。

python manage.py shell # Django 项目环境终端,如果你安装了 bpython 或 ipython 会自动用它们的界面,推荐安装 bpython。这个命令和 直接运行 python 或 bpython 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。

python manage.py dbshell #数据库命令行,Django 会自动进入在settings.py中设置的数据库,如果是 MySQL 或 postgreSQL,会要求输入数据库用户密码。在这个终端可以执行数据库的SQL语句。如果您对SQL比较熟悉,可能喜欢这种方式。

python manage.py #更多命令,可以看到详细的列表,在忘记子名称的时候特别有用。


小结

本文主要完成了在 mac 中 Python 3.6.1 的安装和 pip 的简单使用,并用 virtualenv 创建了虚环境,在虚环境中安装组件包 Django 1.11,并完成了项目的创建,app的创建,开发服务器的启动。下一篇将完成 MySQL 5.7.18 的安装,并在Django项目中完成与MySQL的连接与测试。


3 0
原创粉丝点击