《Python编程从入门到实践 第二版》第二十章 部署“学习笔记” 示例练习

《Python编程从入门到实践 第二版》第二十章 部署“学习笔记”示例练习

前言

  最近在学习Python编程语言,跟着《Python编程从入门到实践 第二版》做练习。因为,这本书写自2019年前后,使用的Python版本是3.7.2。
  写这篇文章的时间是2022年7月8日,截至目前,Python的最新版本是3.10.5。在做第二十章书中部署“学习笔记”的示例编写时,遇到了一些细节上的小问题。在此,写一篇文章分享给大家。如果能帮助到你,深感欣慰。

问题

  1.书中对应章节的标题是:20.2 部署“学习笔记”
  2.书中对应的操作步骤:

  20.2.1 建立Heroku账户
  20.2.2 安装Heroku CLI

  上述这两步都没遇到太大的问题。
  20.2.3 安装必要的包
  这一步,遇到了一些小问题。书中的操作如下图所示:
图 20.2.3 安装必要的包
  其中,安装的第一个包的操作指令为:pip install psycopg2==2.7.*。当我第一次学习到这里时,我windows机器上面安装的Python版本为3.8.9,执行了这一条指令后出现了报错,大意是说无法安装相关安装包版本。
图20.2.3 安装必要的包
  此时,我并没有考虑我的windows机器安装的Python3.8.9版本存在问题。我想到了一种情况,这本书写自2019年前后,现在是2022年,也许是因为时间过得太久,有些软件版本进行迭代更新,无法正常安装了。
  于是,我在网上进行了相关查找,发现并不存在无法安装的问题。接着,我强行按照书中所示的步骤,执行了后续的部署操作。最后,得到的结果显而易见,失败了。

解决

  就在我准备放弃的时候,我重新查看了Heroku网站的相关配置说明。因为,这一章节,书中的示例是部署在了Heroku上面。我找到了如下图所示的信息:
Heroku示例
  再查看Heroku支持的堆栈,如下图所示:
Heroku堆栈
Heroku堆栈
  通过上述两张图片,我们可以看到Heroku堆栈最后更新于2022年6月22日,我在书写这篇文档的时间是2022年7月8日。目前,提供三个堆栈:Heroku-18、Heroku-20和Heroku-22。其中,所有新创建的 Heroku 应用程序的默认堆栈是Heroku-20。
  至此,为了方便,选择卸载已安装的Python3.8.9版本,下载安装最新版Python3.10.5版本。

Python版本
注意:
  如果这里选择卸载旧有的Python版本,学习笔记工程内部的ll_env文件夹需要删除重新配置。因为,这个是和本机安装的Python版本对应依赖的。
  一旦选择卸载旧版本Python,安装新版本Python,就需要重新对learning_log进行设置,包含:建立虚拟环境python -m venv ll_env、激活虚拟环境source ll_env/bin/activate、安装Djangopip install django、在Django中创建项目django-admin startproject learning_log .、创建数据库python manage.py migrate、查看项目python manage.py runserver、创建应用程序python manage.py startapp learning_logs、定义模型等等。
  这里可能会有疑问,这不是相当于重做一遍吗。建议是,先把learning_log工程先整体备份一份。那可能还会问,即使备份,这样做也好麻烦,成本好高啊。其实,书中也有讲到,ll_env文件夹是不进行推送到Heroku的,因为ll_env可以实时变化。
  另外,能把书中示例练习跟到这一步,相信前面的步骤也大体心中有数了。在有learning_log工程整体备份的情况下,重新创建一次ll_env也不是什么不可完成的工作。

忽略文件
  当一切重新创建完毕之后,需要先启动localhost:8000,查看一下效果是否如之前一样表现正常。然后,就到了最关键的一步。我们再次来到了这一步,如下图所示:
安装必要的包
  注意,这里我们要修改第一行的指令为:pip install psycopg2,去掉结尾处的特定版本号。
至此,就可以正常后续的进程了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值