[问题] ImportError

楼主: callmejohn (john)   2018-08-08 10:09:11
大家好,想请问个新手问题
最近跟著书在做一些范例,遇到了一个import的问题
范例中做了两个档案"data.py"及"Env.py" (我把他们放在同一个资料夹内)
然后在Env.py中要import "data.py"这个档案
书中用 from . import data
我查了一下应该是relative path的用法
却发生错误如下:
ImportError: cannot import name 'data'
有看到有些人说要加放一个__init__.py
试过了好像没有用
想请问问题可能出在哪里?
谢谢大家
作者: gmccntzx1 (o.O)   2018-08-08 10:18:00
把你书上的范例放到这上面来重现 https://repl.it/
楼主: callmejohn (john)   2018-08-08 10:45:00
感谢楼上分享,自问自答 把from . 删掉就好了.....
作者: TitanEric (泰坦)   2018-08-08 10:47:00
我记得在Python 3某版后 module不用再有__init__.py
作者: gmccntzx1 (o.O)   2018-08-08 10:50:00
有 __init__.py 的好处是可以在里面处理一些细节对于有要做模组化的需求时是很有用的, 不过一般小的project 也是可以不用那么麻烦.也谢谢 @TitanEric, 我去找一下在 PEP 哪一篇有讲这个找到了, PEP 420 我来看一下补充一下我上面提到的东西. 像是 numpy 为了让使用者可以在 from numpy import XXX 后针对该 submodule直接做执行 unit test, 而不用在 terminal 下指令所以在每个 submodule 的 __init__.py 里有定义他们自己写的 tester. 参考: https://git.io/fNyKM举例来说, 如果要跑 numpy.ma 这个 submodule 的 test可以用 numpy.ma.test() 去执行
楼主: callmejohn (john)   2018-08-08 11:45:00
谢谢两位分享,虽然小弟目前看得雾煞煞......XD
作者: ThxThx (洗洗睡)   2018-08-08 14:23:00
#1RBAp0aW (Python)我只之前写的,ImportError几乎都快变成月经文了
作者: TitanEric (泰坦)   2018-08-08 16:52:00
原来module的init可以跑测试 第一次知道 感谢g大

Links booklink

Contact Us: admin [ a t ] ucptt.com