web2py 外部库

3 投票
2 回答
5016 浏览
提问于 2025-04-15 23:08

我该怎么在web2py中导入其他外部库呢?可以在静态文件里加载库吗?有没有人能给我一个例子?谢谢!

彼得

2 个回答

0

在web2py中,你可以像在Python中一样,正常地导入外部库。

import module_name

或者

from module_name import object_name

我不太明白你说的“在静态文件中”是什么意思。

5

如果这个库是随 Python 一起提供的,你就可以像在普通的 Python 脚本中那样使用 import。你可以把 import 语句放在你的模型、控制器和视图中,也可以放在你自己创建的 Python 模块里(这些模块存放在 modules 文件夹中)。比如,我经常在我的控制器中使用 traceback 模块来记录堆栈跟踪:

import traceback

def myaction():
    try:
        ...
    except Exception as exc:
        logging.error(traceback.format_exc())
        return dict(error=str(exc))

如果这个库不是随 Python 一起提供的(比如 pyodbc),那么你需要先安装这个库(可以用 distutils、easy_install 或 pip),这样 Python 才能找到它并从源代码运行 web2py:python web2py.py。然后你就可以像上面说的那样使用普通的 import 语句。在你这样做之前,确保你已经正确安装了这个库:运行 Python 解释器,输入 "import library_name"。如果没有错误提示,那就可以继续了。

如果你有一个第三方的 Python 模块或包,可以把它放到 modules 文件夹里,然后像下面这样导入:

mymodule = local_import('module_name')

你还可以通过设置 reload 选项,强制 web2py 每次执行 local_import 时重新加载模块:

mymodule = local_import('module_name', reload=True)

想了解更多信息,可以查看 http://web2py.com/book/default/section/4/18?search=site-packages

撰写回答