Python,我该如何导入位于子目录中的模块?

4

我正在使用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,应该显示关于我们的页面。

然而,在我拆分模块后,它会显示“404未找到”。

你能看出问题吗?


你需要使用蓝图 - Burhan Khalid
@BurhanKhalid 谢谢,我已经查看了蓝图。 :) - Jake
2个回答

9
你需要创建一个“包”。基本上是一个包含__init__.py的目录。
通常你可以(天真地)这样做:
$ mkdir foo
$ touch foo/__init__.py

"foo"必须在sys.path中。

详情请参见:http://docs.python.org/2/tutorial/modules.html


0

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