百宝箱
Video Site ID in user profile not reconized. Only "163, youtube, bili,local" accepted.Video Site ID in user profile not reconized. Only "163, youtube, bili,local" accepted.Video Site ID in user profile not reconized. Only "163, youtube, bili,local" accepted.Video Site ID in user profile not reconized. Only "163, youtube, bili,local" accepted.

先抱歉这么久没更新……哒哒,开启找借口模式:

  1. 人到中年,身不由己

  2. 都怪外界诱惑太多:刷手机真香、播客的内容闻所未闻、闲书打开的世界真奇妙、那什么,瓜地里的瓜吃不过来……

至于尽在不言中的中年,经历过的自然明白,没经历过的迟早会明白。虽然我很享受这中年时光,一点儿也不愿意再回到少年锦时或青年美时。一个原因可能是以前没有超市自由现在有,我很肯定这不是主要原因,主要应该是现在开始懂得欣赏&咂摸出许多滋味来:一本书、一首歌、一段唱腔、一顿美食带来的愉悦;浓郁咖啡、幽香好茶、清风明月、夜空繁星、花草树木……生活多美好;诙谐幽默的段子、精心编辑的短视频、妙手抓拍或p过的图片、说古论今的播客让人哈哈大笑;与老友的小聚、远方亲友的关怀……更是增填了温情的注脚。

而且我并没偷多少懒,有空就做做reportlab的后期制作。只是因为留给生活其他部分的时间多一些,显得这边节奏慢了些。

在编辑reportlab视频时,遇到程序中导入(import)自己的文件时提示找不到模块的问题,为了给视频“瘦身”,把PythonABC基础教程相关段落提出来放在这里,供看官查阅。

在程序文件中myCat.py内对cats的定义如下:

cats = [{‘name':'Garfield','desc':'chubby'}, {'name':'Tom','desc':'naughty'}, {‘name':'kitty','desc':'pretty'}]

这里定义的变量cats该怎样拿出来给其他程序用呢?

其他程序要使用这个变量需要在自己的程序中引入myCats模块:

import myCats

可是有时会出现“No module named myCats”的错误。如果用的集成开发环境是PyCharm,myCats下还会出现一条红色波浪线。原因在于myCats.py所在路径不在Python解释器的搜索路径下,换句话说就是Python编辑器不知上哪儿去找myCats.py。所以接下来我们解释如何把myCats.py所在路径添加进Python解释器的搜索路径中:

打开PyCharm菜单项选择’Preferences’(MAC)或者打开File菜单单击setting选项(Windows),然后选择自己生成的项目(这里是PythonABC_Book)下的项目解释器,见下图标号2标示的位置。单击项目解释器旁边的设置,见下图标号1所标示的按钮:

images/pABCArticles/Foundation/Problem/problem1-2.png

弹出的窗口内选择在用的Python解释器(下图所示界面标号1标示的位置)。单击’+’(标号2所标示的位置)。在弹出的窗口内选择myCats.py所在的文件夹后,一路按’OK按钮。再回到代码区时,myCats下面的红色曲线不见了(不消失也没关系,不影响程序运行)。

现在引入myCats,取出定义好的变量用起来。

import myCats  
# 导入变量文件后就像把myCats.py里的变量定义也搬到程序里来一样。
 
print(myCats.cats)  
# cats是文件myCats.py里的变量,引用时加一个来源myCats。输出的是文件myCats.py里定义的cats的内容。
print(type(myCats.cats))      # 定义时cats是列表,这里也是列表。
print(myCats.cats[0])         
# 列表cats的第一个字典类型的元素:{'desc': 'chubby', 'name': ‘Garfield’}。
print(myCats.cats[0]['name'])
# 输出字典里键值(key)为’name’的元素的值(value):’Garfield’

如果导入(import)的是第三方模块(比如pathlib,pillow, moviepy……),碰上这种错误说明这个第三方模块没被安装,解决办法是安装这个第三方模块。