Python,如何导入子目录中的模块?

时间:2013-12-10 05:02:56

标签: python flask

我正在使用Python和Flask来构建项目。

如何导入子目录中的模块?

这是目录结构。

/application
  /apis
    settings.py
index.py

这是index.py文件。

from flask import Flask
import os
import sys
import random
from flask import render_template, request, jsonify, redirect, url_for, send_file, Response, make_response
from werkzeug import secure_filename

app = Flask(__name__)
app.debug = True

sys.path.append("apis")
import settings

这是apis文件夹中的settings.py文件。

from flask import Flask
import pymongo
import datetime
import os
import sys
import random
from flask import render_template, request, jsonify, redirect, url_for, send_file, Response, make_response
from werkzeug import secure_filename

app = Flask(__name__)
app.debug = True

## About Us
@app.route('/apis/settings/aboutus')
def aboutus():
    return render_template('aboutus.html')

因此,我尝试使用sys.path.append导入设置模块。

当所有代码都在index.py中时,它运行正常。

如果我点击此地址http://domain.com:5000/apis/settings/aboutus,它应该显示AboutUS页面。

然而,在我拆分模块之后,它说“404 Not Found”。

你能看到问题吗?

2 个答案:

答案 0 :(得分:5)

您需要创建一个“包”。基本上是包含__init__.py

的目录

通常你可以(天真地)做这样的事情:

$ mkdir foo
$ touch foo/__init__.py

“foo”必须在sys.path中。

有关详细信息,请参阅:http://docs.python.org/2/tutorial/modules.html

答案 1 :(得分:0)

我发现烧瓶支持这种问题。

更大的应用程序 http://flask.pocoo.org/docs/patterns/packages/

我查看了这个页面,它描述了如何导入python模块。

谢谢!