web2py 外部库
我该怎么在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。