学到模块这一节,动手练习的时候还是出现了错误,但是出现错误不可怕,动手解决就是了!
在一个目录下我新建了一个add文件夹,用来存放我定义的add2numbers.py这个模块,然后把调用的文件定义在了同目录下的另外一个文件夹下,命名为use_add.py。接下来就是写代码调用了。
一开始这么写的:
from add.add2numbers import add2numbers
print(add2numbers(22, 11))
一运行,报错了:
Traceback (most recent call last):
File "C:\Users\mobikok\Desktop\pythonlearn\leetcode\use_add.py", line 4, in <module>
from add.add2numbers import add2numbers
ModuleNotFoundError: No module named 'add'
然后打开搜索引擎,键入 python 错误名(比如这里的ModuleNotFoundError),原来默认是会在当前文件夹下寻找,找不到自然就报错了,那要让它成功调用,就要指定一个路径让它去找,在use_add.py文件中加上以下代码:
# 引入sys模块,并添加上级目录的路径
import sys
sys.path.append('../')
# 然后通过 FileName.modulename 来找到需要引入的模块名
# 最后用 import 导入具体的方法或者属性
from add.add2numbers import add2numbers
print(add2numbers(22, 11))
运行use_add.py,发现add文件夹下多出来一个_pycache_文件夹,这是因为:
python解释器会将 *.py 脚本文件进行编译,并将编译结果保存到__pycache__目录中。
下次再执行工程时,若解释器发现这个 *.py 脚本没有修改过,就会跳过编译这一步,直接运行以前生成的保存在 __pycache__文件夹里的 *.pyc 文件。这样工程较大时就可以大大缩短项目运行前的准备时间;如果你只需执行一个小工程,没关系 忽略这个文件夹就行。