Python 3.6中如何导入自定义模块?同目录模块导入报错求解
解决"no module named pizza"导入错误的几种方法
这个问题我碰到过好多次,本质上就是Python找不到你的pizza.py模块——要么是它不在Python的模块搜索路径里,要么是你的IDE工作目录没设置对。下面给你几个靠谱的解决办法:
1. 先确认IDE的工作目录是Project0
这是最常见的原因。如果你的IDE当前工作目录不是Project0,而是它的上级文件夹或者其他目录,Python就没法在当前路径下找到pizza.py。
- PyCharm用户:右键点击
Project0文件夹,选择「Mark Directory as」→「Sources Root」,确保它被设为源码根目录。 - VS Code用户:直接打开
Project0文件夹作为工作区(而不是打开包含Project0的父文件夹),这样运行make_pizza.py时,Python会自动在当前工作目录(也就是Project0)里查找模块。
2. 检查导入语句的写法(小优化)
你的代码里写了:
from pizza import make_pizza pizza.make_pizza(16, 'pepperoni')
其实from pizza import make_pizza已经把make_pizza函数直接导入到当前命名空间了,不需要再加pizza.前缀,直接调用make_pizza(16, 'pepperoni')就行。不过这不是导致报错的原因,但改了会更规范。
3. 手动添加模块路径(临时应急方案)
如果改了工作目录还是不行,可以在make_pizza.py的最开头加上这段代码,把Project0的绝对路径添加到Python的搜索路径里:
import sys # 替换成你自己的Project0绝对路径,比如Windows下是"C:/Users/xxx/Project0",Mac/Linux下是"/home/xxx/Project0" sys.path.append("/你的/Project0/绝对路径") from pizza import make_pizza make_pizza(16, 'pepperoni')
这个方法是临时解决,长期来看还是建议用第一种方法设置正确的工作目录,避免硬编码路径。
4. 最后再确认文件位置
花10秒钟检查一下:pizza.py和make_pizza.py是不是真的都在Project0文件夹里?有没有不小心把pizza.py放到了Project0的子文件夹里?如果位置错了,肯定找不到。
内容的提问来源于stack exchange,提问作者JoJo Hu
相关产品推荐
相关产品推荐

