首页 > 编程 > Python > 正文

Python包间模块的互相调用

2019-11-06 08:19:35
字体:
来源:转载
供稿:网友
最近在写Python代码的时候碰到的问题:当python代码中存在包间的调用时,在本地的编译器(Pycharm)上运行Python代码的时候是没错误的,但是,当把代码放到服务器上,用终端命令运行的时候,显示模块不存在。

这是我的包结构: 我的包结构

我在starttest.pyimport readfrom 然后readfrom.pyfrom mycluster import clusterdata

在编译器中run这个starttest是可以的
这里写图片描述
命令行执行python ./starttest.py时却报错:

Traceback (most recent call last): File “starttest.py”, line 10, in import readfrom File “/home/zqb/zqb_code/exceptiontest/exceptiontest/exptest/readfrom.py”, line 7, in import extractfeature File “/home/zqb/zqb_code/exceptiontest/exceptiontest/exptest/extractfeature.py”, line 9, in from clusterdata import clusterdata ImportError: cannot import name clusterdata

分析问题:python解释器找不到模块clusterdata这是Python包间互相调用出了问题,或者说是工作目录的问题。接下来,我改了三个地方的内容:
在__main__所在的文件:starttest.py最前面添加# coding=utf-8# 启动import syssys.path.append('你的路径/exceptiontest/mycluster')import readfrom在要被调用的包下的初始文件:mycluster/__init__.py中添加import clusterdata在需要调用别的包里模块的那个模块:readfrom.py中的from mycluster import clusterdata替换成import clusterdata
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表