Python ImportError: No module named common.io_util

2018-11-01 11:15:43 +08:00
 DongDongXie
文件目录大概如下所示:
---_init_.py
---common
------io_util.py
------_init_.py
---config
------util.py
------_init_.py
---data_pip
------_init_.py
------importance_analysis
----------plot.py
----------_init_.py

然后在 plot.py 里面导入:
from common.io_util import parse_line,
from config.util import *

执行 plot.py 报错 ImportError: No module named common.io_util,试过网上说的好几种方法都不行,请问怎么解决

4828 次点击
所在节点    Python
11 条回复
arrow8899
2018-11-01 11:34:43 +08:00
你的 common 没在 path 里面。
办法 1:把根目录加入 sys.path 中
办法 2:从根目录运行 python ./data_pip/importance_analysis/plot.py
anonymous256
2018-11-01 11:35:27 +08:00
按照你的方式组织了一遍, 没问题啊.
是不是因为你把 __init__ (双下划线), 写成 _init_ (单下划线了).....
myyou
2018-11-01 11:35:56 +08:00
__init__.py 是双下划线
DongDongXie
2018-11-01 11:52:44 +08:00
@myyou 我这里写成单下划线_了,实际上我这边已经写成__了
DongDongXie
2018-11-01 11:52:54 +08:00
@anonymous256 我这里写成单下划线_了,实际上我这边已经写成__了
fzzff
2018-11-01 12:30:28 +08:00
试试 在导入前 import sys
sys.path.append(common_path) 或者 from plot.common.io_util import parse_line
fzzff
2018-11-01 12:31:20 +08:00
还有一种可能 pip uninstall common
ytmsdy
2018-11-01 12:34:11 +08:00
_init_.py 应该修改为 __init__.py
然后在 __init__.py 中写
from .ou_util import parse_line

plot.py 中写入
from common import parse_line,

试试这样。
foxyier
2018-11-01 15:30:00 +08:00
在 common 的__init__.py 加入 import sys sys.path.append(".")试试
quere
2018-11-01 18:02:47 +08:00
在 pycharm 里面 选中那个包,右键 Mark Directory as -----》 Sources Root ,让这个文件变为一个包
shm7
2018-11-01 19:38:52 +08:00
上面就是我的意思

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/503325

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX