0

default.pyコントローラーにファイル名があり、同じディレクトリにファイルがありますが、にgetmsg.pyインポートできません。なぜだめですか?どうすればインポートできますか?getmsgdefault.py

エラー:

Traceback (most recent call last):
  File "F:\xampp\htdocs\web2py\gluon\restricted.py", line 212, in restricted
    exec ccode in environment
  File "F:/xampp/htdocs/web2py/applications/tools/controllers/default.py", line 11, in <module>
    import getmsg
  File "F:\xampp\htdocs\web2py\gluon\custom_import.py", line 81, in custom_importer
    raise ImportError, 'Cannot import module %s' % str(e)
ImportError: Cannot import module 'getmsg'
4

2 に答える 2

0

web2pyでは、コントローラーはPythonモジュールではなく、インポートしません。モジュールをアプリケーションの/modulesフォルダーに配置し、そこからインポートできます。

理論的には、(/ controllersフォルダーにファイルがあると仮定して__init__.py)次のことができます。

import applications.myapp.controllers.getmsg

しかし、それは標準的な慣行とは見なされません。特に、コントローラーは通常のPythonモジュールとして使用することを目的としていません。これらは、web2py APIの多くがすでに定義されている環境で実行されるため、コントローラーをモジュールとしてインポートすると、そのコードが使用できないグローバルオブジェクトを参照し、例外が生成される場合があります。

于 2013-03-13T02:02:18.940 に答える
0
from getmsg import Classname, methodname
于 2013-03-13T01:31:59.530 に答える