Python中为何无法从同目录下的gufu.py文件导入函数?
我之前也碰到过一模一样的问题,折腾了好一会儿才搞定,给你几个排查方向,应该能解决你的问题:
检查文件名的准确性:
确认你的文件确实是gufu.py,有没有拼写错误或者大小写问题?比如在Linux/macOS系统里,Gufu.py和gufu.py会被识别成两个不同的文件,而Windows下虽然不区分大小写,但最好保持导入语句和文件名完全一致。排查同名冲突:
看看当前目录或者Python的系统路径里,有没有其他同名的gufu.py文件,或者有没有名为gufu的文件夹?Python在查找模块时会按sys.path的顺序查找,如果有同名的模块在前面,就会优先加载那个,导致找不到你自己的文件。添加空的__init__.py文件:
虽然Python 3.3及以上版本支持无__init__.py的命名空间包,但有时候在模块所在的目录下创建一个空的__init__.py文件,能帮助Python明确识别这个目录为一个可导入的包。你可以试试在该目录下新建一个空的__init__.py,然后再尝试导入。验证Python的路径列表:
即使你通过os.getcwd()确认了当前目录正确,也有可能这个目录不在Python的sys.path列表里。你可以在Python Shell里执行以下命令查看:import sys print(sys.path)如果当前目录不在输出的列表中,可以手动添加后再导入:
import sys, os sys.path.append(os.getcwd()) from gufu import *确认虚拟环境状态:
如果你正在使用虚拟环境,先确认是不是激活了正确的虚拟环境。有时候误激活了其他虚拟环境,会导致Python的模块查找路径指向错误的位置。检查文件是否被占用:
虽然这种情况比较少见,但如果你的gufu.py文件被其他编辑器或进程锁定,Python可能无法读取它。试试关闭所有打开该文件的程序,然后重新启动Python Shell再尝试导入。
内容的提问来源于stack exchange,提问作者John

