树莓派搭建python环境服务器

材料准备:

树莓派3B,USB接头5V/1.5A,安卓数据线,HDMI转接线,键盘,8G以上优质SD卡,显示器(可有可无)VGA转接线(可有可无),一台正常使用的电脑(远程)。
*******有显示器的最好接显示器*******

下载镜像

官网下载树莓派镜像:RASPBIAN STRETCH LITE 镜像下载

******下载 RASPBIAN STRETCH LITE镜像******
RASPBIAN STRETCH LITE镜像是一个没有界面的镜像。
树莓派cpu和内存本来就很有限,不要浪费资源在桌面上。
******下载 RASPBIAN STRETCH LITE镜像******

烧制镜像

烧制镜像:树莓派3 从到手到开机
**********需要ssh远程请注意**********
在烧制完成后在镜像SDcard里面添加一个ssh的文件夹。
因为现在树莓pi系统默认是关闭了ssh连接的22号端口的,添加一个名字为ssh文件夹会自动打开。
**********需要ssh远程请注意**********

设置网络

有网线的直接接网线,没有网线的要设置Wi-Fi:树莓派设置Wi-Fi
*******************注意*****************
在设置网络后,通过命令ifconfig -a查看当前树莓派的ip地址
*******************注意*****************
树莓派3 播放音乐(网络音乐)(附加甜品/可有可无)

ssh远程登录树莓派(Mac用户)

启动终端输入:
ssh pi@192.168.1.107( ssh pi@树莓派的ip )
提示输入密码,默认密码为:raspberry
*******************提示*****************
密码正确后会有一串英文提示说:不确定你连接的服务器就是你的目标服务器。是否还要继续连接。(选择yes)这串提示需要你了解ssh远程连接的原理。有一种黑客攻击技术叫中间人攻击
*******************提示*****************
*******************注意*****************
当你重新刷了系统要远程控制树莓派的时候会出现ssh密钥错误的问题。那么你需要到存放ssh密钥的地方把之前的ssh密钥删除才能连接上。
存放在Mac这个路径下:/Users/typ/.ssh
*******************注意*****************


树莓派搭建python环境服务器

服务器结构大致为:django+uwsgi+nginx+python+sqlite

配置python环境

系统本身自带了python2.7和python3.5。在这里我们搭建python3.5的环境。所以需要安装pip3,在安装pip3之前需要setuptools支持。
安装setuptools如下命令:

~:wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
~:tar -zxvf setuptools-19.6.tar.gz
~:cd setuptools-19.6.tar.gz
~:python3 setup.py build
~:python3 setup.py install

后安装pip

wget --no-check-certificate  https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
python3 setup.py build
python3 setup.py install

*******************注意*****************
我门下载的路径需要注意,你当前在什么路径下,那么wget下载的软件包就在哪里。这里要注意一点,在我们没有指定安装路径的时候,系统会默认安装在 /usr/local 里面。
*******************注意*****************
sudo pip3 install --upgrade pip 更新pip3

安装django

sudo pip3 install django

安装uwsgi

sudo pip3 install uwsgi
*******************注意*****************
在安装uwsgi的时候你可能会报一个这样的错。

plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
 #include <Python.h>

原因是缺少 python-dev这个库,输入如下命令安装:
sudo apt-get install python3-dev
*******************注意*****************

安装nginx

sudo apt-get install nginx


测试uwsgi

新建一个test.py文件如下命令:
sudo nano test.py
编辑如下内容:

# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

输入如下命令:
uwsgi --http :8000 --wsgi-file test.py
在浏览器输入地址,格式如下:
http://树莓派的ip地址:8000
eg: http://192.168.1.107:8000
如果出现Hello World就代表成功了。

*******************提示*****************
关闭uwsgi包括关闭服务器都是方法:control + c
*******************提示*****************

测试django

创建django项目
django-admin.py startproject helloworld
在helloworld目录下创建应用,比如blog:
python3 manage.py startapp blog
进入项目
cd helloworld
*******************目录文件介绍*****************
manage.py:
一个命令行工具,通过它可以调用Django shell和数据库等。键入python manage.py -h,查看它的相关功能。

init.py:
让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。这是一个空文件,一般你不需要修改它。

settings.py:
项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。

urls.py:
django项目的URL设置。 可视其为你的django网站的目录, 负责把URL模式映射到应用程序。

wsgi.py:
服务器网关接口(Python Web Server Gateway Interface),web服务器和web服务程序或者框架之间的一种简单而通用的接口。
*******************目录文件介绍*****************

测试django
python3 manage.py runserver 192.168.1.107:8000
*******************注意*****************
你可能会出现如下提示:

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

执行:python3 manage.py migrate
然后你会发现在上一层的helloworld目录下面多了一个文件dg.sqlite3

然后重新启动服务执行:
python3 manage.py runserver 192.168.1.107:8000
运行成功显示如下信息

System check identified no issues (0 silenced).
December 21, 2014 - 08:56:00
Django version 1.7.1, using settings 'my_blog.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

还没有结束

你可能会出现这个提示:
Invalid HTTP_HOST header: '192.168.1.107:8000'. You may need to add '192.168.1.107' to ALLOWED_HOSTS
解决方法如下:
cd到helloworld目录文件下找到settings.py文件并打开。
sudo nano settings.py
找到ALLOWED_HOSTS = ['']
在这里请求的host添加* 改为如下:
ALLOWED_HOSTS = ['*']

control+x保存退出
*******************注意*****************
出现如下界面代表你安装成功


屏幕快照 2018-01-23 下午5.15.58.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335