栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

树莓派 Python3下安装Django

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

树莓派 Python3下安装Django

核心问题是要解决Django版本和Python版本匹配问题。版本间兼容关系如下,详细可以看这里。

Django versionPython versions
2.23.5, 3.6, 3.7, 3.8 (added in 2.2.8), 3.9 (added in 2.2.17)
3.13.6, 3.7, 3.8, 3.9 (added in 3.1.3)
3.23.6, 3.7, 3.8, 3.9

从以上可知,如果要安装最新的Django3.2,那Python版本必须要3.6以上。而现在手上的树莓派3B里的Python是3.4,所以必须要先升级。

升级方法都要涉及到Python的编译,具体如下。

sudo apt update
sudo apt install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev      #安装依赖库
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
tar zxvf Python-3.7.3.tar.xz
cd Python-3.7.3
sudo ./configure
sudo make -j4    #多核心编译
sudo make altinstall       #不替换原版本

rm -rf /usr/bin/python3     
sudo ln -s /usr/local/bin/python3.7 /usr/bin/python3     #修改默认Python3

rm -rf /usr/bin/pip3
sudo ln -s /usr/local/bin/pip3.7 /usr/bin/pip3    ##修改默认Pip3

安装完成后,当运行 python3 manage.py runserver 8000后,出现错误提示,
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/local/python3/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()

....

最终提示找不到sqlite3,无法import

当时考虑这里有两个问题,一个是需要安装sqlite3,另一个对于Exception,查了网上的说法和Django版本有关,需要降级。但实际查了官网的版本对应关系后,Python3.7是完全没有问题的。所以检查没有尝试降级的做法,先是考虑安装sqlite3。

关于sqlite安装,网上的做法是要下载编译sqlite,然后再次编译Python,看上去很繁琐。同时在Django的安装文档里也看到sqlite是在Python里应该已经自带,所以提出问题,为什么刚才的安装里没包含呢?后来对比了多个树莓派Python的升级方法中,对于依赖库的安装,有些是带了sqlite,有些是没带,而我一开始用的恰好是没带的方法。然后,马上尝试单独追加安装依赖,并重新编译Python,在做auto configure的时候,应该会找到sqlite并把它包含编译进去。

sudo apt install libsqlite3-dev sqlite3

安装完成后,在Python3下,import sqlite3可以验证是否安装成功。还可以这样验证: find / -name _sqlite*.so,是否能在Python3.7下找到so文件。

说明一下,上面的依赖库安装已经是包含sqlite3了。

好,现在再次运行, python3 manage.py runserver 8000 一切正常了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348563.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号