我是python包管理的新手,肯定做错了什么。鼓励我创建如下目录结构:
bagoftricks
├── bagoftricks
│ ├── bagoftricks
│ │ ├── __init__.py
│ │ └── bagoftricks.py
│ └── __init__.py
├── README.md
└── setup.py
py包含两个函数,levenshtein()
和geofind()
。
我想称之为:
import bagoftricks
x = bagoftricks.levenshtein(arg1,arg2)
相反,我发现我必须这样做:
import bagoftricks
x = bagoftricks.bagoftricks.levenshtein(arg1,arg2)
有没有更好的方法来组织我的包,而不是命名冗余?
更新
所以,我按照下面Avichal Badaya的指示,移除了一层嵌套。也就是说,我现在有。。。
bagoftricks
├── bagoftricks
│ ├── __init__.py
│ └── bagoftricks.py
├── README.md
└── setup.py
不过,要打电话给这个包裹,我还有。。。
from bagoftricks.bagoftricks import geofind()
或者
import bagoftricks
那么
>>> bagoftricks.bagoftricks.geofind()
而不是想要的。。。。
from bagoftricks import geofind()
或者
import bagoftricks
>>> bagoftricks.geofind()
我不能去掉那层多余的巢。通过类比,当我试图移除一个层次的嵌套时,我的模块是平的,如下所示:
bagoftricks
├── __init__.py
├── bagoftricks.py
├── README.md
└── setup.py
我根本无法构建包。。。
$ python setup.py build
running build
running build_py
error: package directory 'bagoftricks' does not exist
在没有多余的顶级名称导入的情况下,使用标准包之类的自然导入有什么秘诀?
目前没有回答
相关问题 更多 >
编程相关推荐