'module' object has no attribute '__loader__'用 Google 找,在 StackOverflow 上找到這篇 flask - cannot setup apache 2.2 with mod_wsgi and python 3.3? ,然後跟著提供的線索看到這篇:Problem debugging Flask under Python 3.3 ,謝謝 Eric 提供的 workaround 。
workaround 是這樣的,在初使化 Flask(__name__) 時,加上 instance_path 參數,所以我就改為 Flask(__name__, os.path.join(os.environ['OPENSHIFT_PYTHON_DIR'], 'instance')) ,就解決了。
問 題是出在 flask.Flask 的初始函數裡,Flask.__init__ 在 instance_path 參數為 None 時,會呼叫 auto_find_instance_path() 來取得 instance_path 的值,而 auto_find_instance_path() 又呼叫 flask.helpers 的 find_packages(),find_packages() 使用了 pkgutil.get_loader() 來尋找 module 而導致了錯誤發生。
我在想,或許添加適當的 __init__.py 也可以解決,但就懶得做實驗了,先這樣。
沒有留言:
張貼留言