python3导入_Python3导入相对还是绝对的正确方法?

我正在编写一个python模块。在Python2中一切正常,但在Python3中,导入失败。

这是我的代码结构。neuralnet/

__init__.py

train.py # A wrapper to train (does not define new things)

neuralnet.py # Defines the workhorse class neuralnet

layers/

__init__.py

inlayer.py # Defines input layer class

hiddenlayer.py

application/ # A seperate application (not part of the package)

classify.py # Imports the neuralnet class from neuralnet.py

train.py需要导入neuralnet.py的neuralnet类。

neuralnet.py需要导入layers/inlayer.py等

(我更喜欢相对进口。)

我有一个不同的应用程序(classify.py)需要导入这个模块。

我在哪里。。。from neuralnet.neuralnet import neuralnet

我试过几种进口方式。

或者我得到了一个错误(大部分是神秘的,比如父元素没有被导入)

1)运行train.py时(它是neuralnet模块的一部分)from . import layer # In file neuralnet.py

SystemError: Parent module '' not loaded, cannot perform relative import

或者

2)运行classify.py时(在模块外部)。from layer.inlayers import input_layer # In file neuralnet.py

ImportError: No module named 'layer'

我的进口货在Python2中很好地运了很多年。我想知道Python对我有什么期望?我是否应该将train.py移到模块外部(技术上它不是模块的一部分)?请提出最佳做法。

谢谢

拉凯什

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值