从子目录导入文件?

643

我有一个名为tester.py的文件,位于/project目录下。

/project目录下有一个子目录lib,其中包含一个名为BoxTime.py的文件:

/project/tester.py
/project/lib/BoxTime.py

我想从tester导入BoxTime。 我尝试过以下方法:

import lib.BoxTime

结果为:

Traceback (most recent call last):
  File "./tester.py", line 3, in <module>
    import lib.BoxTime
ImportError: No module named lib.BoxTime

有什么想法可以从子目录导入BoxTime?

编辑

__init__.py是个问题,但别忘了将BoxTime称为lib.BoxTime,或使用:

import lib.BoxTime as BT
...
BT.bt_function()

1
似乎他正在将 lib/BoxTime 导入到 tester 中。 - ndemarco
13个回答

1

create_card.py

 init():
   print('Hello world!')

app.py

import create_card

create_card.init()

如果你只想导入必要的函数

from create_card import init

如果你有嵌套的目录 (例如: modules/aadhaar/create-card.py)

import modules.aadhaar.create_card as create_cardfrom modules.aadhaar.create_card import init


-1

/project/tester.py

/project/lib/BoxTime.py

创建一个空白文件__init__.py,一直到你找到这个文件为止。

/project/lib/somefolder/BoxTime.py

#lib -- 需要两个项目,一个是 __init__.py,另一个是名为 somefolder 的目录 #somefolder 包含两个项目,分别是 boxtime.py__init__.py


-3
尝试这个: < p > < code >从lib中导入BoxTime


9
没有任何解释,这样并不是很有用。 - Jean-François Fabre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接