我很难理解这一点。
让我们假设我有一个如下所示的目录树:
〜/语音
- __init__.py
- program.py
----------------
〜/语音/份
---- __init__.py
----noun.py
----verb.py
----------------
〜/语音/句子
---- __init__.py
----subject.py
----predicate.py
__init__.py
个文件为空。我通过发出$ touch __init__.py
来创建它们
当我尝试导入任何东西时,我得到NameError:'无论'未定义。
我已经尝试了目录名和单个文件名。
我在python中遇到的每一个问题都是因为我过度思考并试图让它变得比实际更复杂。 (诅咒c ++习惯!)
答案 0 :(得分:1)
除非~
是您当前的目录或位于sys.path
(它不应该是),否则您将无法使用其中包含的任何包,包括speech
和它的子包。将目录结构放在某处,并将该路径添加到$PYTHONPATH
。
答案 1 :(得分:1)
答案 2 :(得分:1)
好的,我终于明白了。
如果我希望它看起来像“java风格的类”,那么我导入:
import parts.noun
import sentence.subject
parts.noun.defineNouns()
sentence.subject.thePersonOrThing()
如果我希望它看起来更像C / ++样式的lib调用,那么我通过以下方式导入:
from parts.noun import defineNouns
from sentence.subject import thePersonOrThing
defineNouns()
thePersonOrThing()
*sigh*
这很简单,很难。