web2py 中使用 import 进行函数调用

发布于 2024-11-18 13:23:38 字数 208 浏览 2 评论 0原文

我已将代码分成多个文件。我已将所有其他文件中的所有函数导入到 admin.py 中。假设我想调用一个函数 XYZ。如果我将函数路径指定为 admin/XYZ ,则会给出无效函数的错误,为此我必须将路径指定为 file_with_XYZ_function/XYZ

有没有一种方法可以克服这个问题并简单地从一个文件中调用所有导入的函数

I have split the code into multiple files. I have imported all the functions from all other files into admin.py. Lets say I want to call a function XYZ. If I give path to function as admin/XYZ it gives me error as invalid function and for this I have to give the path as file_with_XYZ_function/XYZ.

Is there a way to overcome this problem and simple call all the imported functions from one single file

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

魂归处 2024-11-25 13:23:38

注意:这可能无法回答您的问题,因为我不确定我是否理解您的问题...

但是如果您想将一些代码放入(共享)模块中并从多个控制器中包含它,我建议您有一个看看web2py书的第四章(核心)并搜索本地导入

针对这种情况,web2py
提供了另一种导入模块的方法
以这样的方式,全局 sys.path
不改变:通过将它们放在
应用程序的“modules”文件夹。
另一个好处是该模块
将被自动复制并
与应用程序一起分发;
然而,有某些
适用的限制。网络2py
提供了一个 local_import 函数
必须用于从以下位置导入模块
“模块”文件夹。

模块的导入取决于模块以及 web2py 可以在哪里找到它们。如果它是 web2py 可以在 sys.path 或 web2py/site-packages 中找到的标准模块 import modulename 应该按预期工作。

对于应用程序的本地模块,web2py 还提供了其他内容:applications/appname/modules

这些模块可以使用 local_import 导入。

mymodule = local_import(themodule)

这会在应用本地模块文件夹中导入名为 themodule 的模块,并使其在 mymodule 名称下可用。请注意,local_import 支持两个附加参数:reload 和 app。在开发过程中,模块代码经常会发生变化,因此请不要忘记使用参数 reload=True 告诉 web2py 在每次请求时重新加载模块,否则除非重新启动 web2py,否则您将看不到更改。

NOTE: This might not be answering your question as I'm not sure I understand your question...

But if you want to put some code into a (shared) module and include it from several of your controllers I suggest that you have a look at chapter four (The Core) of the web2py book and search for local_import.

For this kind of situation, web2py
provides another way to import modules
in such a way that the global sys.path
is not altered: by placing them in the
"modules" folder of an application.
One side benefit is that the module
will be automatically copied and
distributed with the application;
however, there are certain
restrictions that apply. web2py
provides a local_import function that
must be used to import modules from
the "modules" folder.

The import of modules depends on the modules and where web2py can find them. If it is a standard module which web2py can find in sys.path or in web2py/site-packages import modulename should work as expected.

For modules local to your app web2py offers something else: applications/appname/modules

Those modules can be imported using local_import.

mymodule = local_import(themodule)

This imports the module with the name themodule in the apps local modules folder and makes it available under the name mymodule. Note that local_import supports two additional arguments: reload and app. During development module code often changes so don't forget to tell web2py to reload the module upon each request with the parameter reload=True, otherwise you won't see your changes unless you restart web2py.

情魔剑神 2024-11-25 13:23:38

您可以在模块文件夹中创建 python 文件并导入它们,就像在控制器中导入 python 库一样。但是您必须提供这些文件的路径,就像

 from applications.myApp.modules.myModule import *

这是我的包装器的解决方案一样。现在您可以通过调用函数的名称来使用函数

myFunction

you can create python files in modules folder and import them just like how you import python libraries in your controllers. But you have to give the path to those files like

 from applications.myApp.modules.myModule import *

this is my solution for my wrappers. now you can use your functions by calling their name

myFunction
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文