导入gdsCAD报No module named 'core'但core.py可单独运行如何解决
问题原因
该问题是Python版本差异导致的导入规则冲突:gdsCAD是适配Python2的旧项目,Python2中包内__init__.py的默认导入逻辑优先检索当前包目录,所以import core的写法可以正常执行。而Python3默认使用绝对导入规则,执行import gdsCAD时,解释器会从全局sys.path路径下检索名为core的独立模块,不会主动扫描gdsCAD的包内目录,因此触发找不到core模块的报错。
单独运行__init__.py、core.py时,当前工作目录会被临时加入sys.path,解释器可以在当前目录找到对应文件,因此不会报错。
解决方案
- 方案1(最稳妥,修改包源码):打开gdsCAD目录下的
__init__.py,将原有导入语句修改为相对导入格式:
from . import core from . import shapes from . import utils from . import templates
修改后保存即可正常导入gdsCAD包。
- 方案2(适配旧代码,不改源码):在你自己的业务代码
trial1.py的最开头,先将gdsCAD的安装目录加入sys.path,再导入gdsCAD:
import sys sys.path.append(r"C:\Anaconda\lib\site-packages\gdsCAD") import gdsCAD
内容的提问来源于stack exchange,提问作者Kevin Huang
相关产品推荐
相关产品推荐

