是因为模块的搜索路径问题。当一个脚本导入一个模块时,Python会按照一定的搜索路径来查找该模块。如果自定义模块不在搜索路径中,就无法被顶级脚本导入。
为了解决这个问题,可以采取以下几种方法:
import sys
sys.path.append('/path/to/custom_module')
这样就将自定义模块所在的路径添加到了搜索路径中,顶级脚本就能够找到并导入该模块了。
from . import submodule
这样就可以直接导入自定义模块了。
总结起来,自定义模块看不到由顶级脚本导入的模块是因为模块搜索路径的问题,可以通过修改搜索路径、使用相对导入或将模块安装到site-packages目录来解决。具体的解决方法可以根据实际情况选择。
领取专属 10元无门槛券
手把手带您无忧上云