在python中导入文件

Yos*_*osy 1 python package python-2.6

我有那个文件结构 -

  1. 博客\数据对象\ User.py

  2. 博客\ index.py

我想从index.py导入User.py中的函数(say_hello).我正在尝试这段代码 -

from Blog.DataObjects.User import say_hello

say_hello()  
Run Code Online (Sandbox Code Playgroud)

我有这个错误 -

Traceback (most recent call last):
  File "index.py", line 1, in <module>
    from Blog.DataObjects import User
ImportError: No module named Blog.DataObjects
Run Code Online (Sandbox Code Playgroud)

Bol*_*wyn 12

Python期望在每个应该可导入的目录中,一个文件__init__.py,它可能是空的.因此,如果您将文件结构更正为:

Blog/__init__.py
Blog/index.py
Blog/DataObjects/User.py
Blog/DataObjects/__init__.py
Run Code Online (Sandbox Code Playgroud)

它应该工作,如果目录的路径在你的Python路径中(你可以检查:

import sys
print sys.path
Run Code Online (Sandbox Code Playgroud)

).如果没有,请注意相对于当前文件的位置进行导入.也就是说,由于index.py已经在里面Blog,导入应该是:

from DataObjects.User import say_hello
Run Code Online (Sandbox Code Playgroud)