Python3.6跨目录导入模块报错No module named 'test1'如何解决
问题排查与解决方案
1. 路径问题排查(首要报错原因)
你当前的报错大概率是路径转义或者拼写错误导致的,优先做以下验证:
- 在
test2.py的sys.path.append代码后新增一行打印语句,确认目标路径真的被添加到模块搜索路径中:
import sys # 建议加raw字符串前缀r,避免反斜杠转义出错 sys.path.append(r'C:\Users\jimmy\PycharmProjects\pythonProject1') # 打印所有搜索路径,确认你添加的路径是否存在、拼写是否正确 print(sys.path) import test1
如果输出的路径列表中没有你添加的对应路径,检查路径拼写、系统用户名是否正确,修正后重新运行即可。
2. init.py文件相关说明
Python 3.3及以上版本引入了隐式命名空间包,理论上不需要添加__init__.py也能将目录识别为可导入的包,但Python 3.6版本在IDE运行、相对路径识别等场景下仍存在兼容问题,建议添加:
- 添加操作非常简单:在
pythonProject1文件夹的根目录下,新建一个空白文件,命名为__init__.py即可,不需要写入任何代码内容。
3. 备用兼容方案
如果以上操作仍然报错,可以改为添加父级目录到搜索路径,再通过项目名导入:
import sys sys.path.append(r'C:\Users\jimmy\PycharmProjects') from pythonProject1 import test1
如果是在Pycharm中运行,还可以右键点击PycharmProjects文件夹,选择Mark Directory as -> Sources Root,IDE会自动将该目录加入模块搜索路径,不需要手动修改sys.path。
内容的提问来源于stack exchange,提问作者malic92
相关产品推荐
相关产品推荐

