python 导入自定义包 找不到模块 No module named 解决办法

      当前运行脚本从自己写的包my_package 中导入了模块A,但是模块A所依赖的模块B无法自动导入,此时我们要需要在路径文件 my_package\ __init__.py 中,写入以下代码:

import sys # 即添加包名的搜索路径
sys.path.append("my_package")

原因解析:

        当前脚本从包中导入模块A时,仅导入了模块A的路径,并没有模块B的路径。python搜索路径找不到B的路径。自然,A的依赖模块B无法导入。类似于pyinstaller打包时的 --hiden-import 

        此时需要在包内的__init__.py文件内添加模块B的路径(在导入包时,__init__.py会自动运行),由于有包的路径,python解释器就可以搜索包下的模块,自然模块B也能被导入了。

        以上属于个人的猜测理解,有误之处请予指正。

问题举例:

        在当前脚本 exam1-1.py 从自己写的包中导入模块 cipher_algprithm.affine_cipher.py (如图1),并从中导入 AffineCipher() 类。其中 affine_cipher.py 需要导入 util_math.py

        但是运行 exam1-1.py 缺显示 No module named 'util_math',即当前运行脚本仅从包中导入了affine_cipher.py,但是无法自动导入 affine_cipher.py 所依赖的模块 util_math.py (如图2,图3)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值