__python3.6与python2.7中的init_uuy.py

2024-10-02 12:28:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将用python2.7编写的模块更新到python3.6。我对这两种语言版本中__init__.py的处理方式有一个顾虑。在

尤其是,我的__init__.py看起来像这样:

from FT_optimize import *
from FuzzyVars import *
from FuzzyTree import *

当我从Python2.7上传包时。像这样:

^{pr2}$

我可以访问__init__.py中声明的所有模块的名称空间。比如:

ft.optmize_partition(ft.FuzzyTree)

但是,Python 3.6中的相同代码报告了一个错误:

AttributeError: module 'FuzzyTree' has no attribute 'optimize_partition'

有什么想法吗?在

从Python文档中我没有看到任何标准的区别。在


Tags: 模块frompyimport版本语言init方式
1条回答
网友
1楼 · 发布于 2024-10-02 12:28:08

这个问题的解决方案(请参阅我的注释)是声明到init.py中所有模块的相对路径,包括那些位于同一目录中的模块。在

因此,按照前面的示例,init.py现在看起来:

from .FT_optimize import *
from .FuzzyVars import *
from .FuzzyTree import *

(你应该意识到模块名称前的点)。 现在一切正常。在

相关问题 更多 >

    热门问题