Mac系统下保存Python文件时如何创建子目录?解决模块导入报错
解决Mac上Python模块导入错误及目录结构创建问题
一、先解决「模块找不到」的报错问题
你遇到的没有名为dir...的模块错误,主要是两个常见原因,一步步排查就能解决:
确认当前工作目录是否正确
Python只会在sys.path列表里的目录搜索模块,Mac的IDLE默认打开的工作目录可能不是你存放dir1的父目录。- 先在IDLE里执行这行代码查看当前路径:
import os print(os.getcwd()) - 如果输出的路径不是
dir1所在的父目录,就用os.chdir()切换过去,比如你的代码放在/Users/你的用户名/Documents/PythonCode里,就执行:os.chdir("/Users/你的用户名/Documents/PythonCode")
之后再执行
import dir1.dir2.mod应该就能正常导入了。- 先在IDLE里执行这行代码查看当前路径:
检查目录/文件名的大小写
Mac的文件系统是区分大小写的,而Windows不区分。比如如果你把文件夹命名成Dir1而不是dir1,Python就会找不到模块,一定要确保目录和文件名和代码里的完全一致(全小写的dir1、dir2、mod.py)。纠正书中的笔误
顺便提一句,你贴的dir1\dir2\__init__.py里的打印语句写错了,应该是print('dir2 init')而不是print('dir1 init'),不然导入时会输出两次dir1 init,和你说的预期输出不符。
二、Mac上创建Python子目录结构的两种方法
方法1:图形界面(Finder)操作
- 打开你要存放代码的文件夹(比如「文档」里新建一个「Python学习」文件夹)
- 右键选择「新建文件夹」,命名为
dir1 - 进入
dir1文件夹,再新建一个文件夹命名为dir2 - 分别在
dir1、dir1/dir2里创建空白文本文件,重命名为__init__.py;在dir1/dir2里创建mod.py,之后用文本编辑器(比如VS Code、TextEdit)打开这些文件写入代码即可。
方法2:终端命令行操作
这种方式更高效,适合熟悉终端的用户:
- 先切换到你要存放代码的目录,比如:
cd ~/Documents/Python学习 - 一次性创建嵌套目录:
mkdir -p dir1/dir2 - 创建所有需要的空文件:
之后就可以用编辑器打开这些文件编写代码了。touch dir1/__init__.py dir1/dir2/__init__.py dir1/dir2/mod.py
内容的提问来源于stack exchange,提问作者realnickspiess




