2014-04-23 59 views
1

幫我理解這段代碼的問題。正如你所看到的,它只有兩行代碼。運行最簡單的燒瓶應用程序時出錯

from flask import Flask 

app = Flask(__name__) 

返回TypeError。

C:\Users\Natali\AppData\Local\Enthought\Canopy32\User\lib\site-packages\flask\app.pyc in auto_find_instance_path(self) 
    620   .. versionadded:: 0.8 
    621   """ 
--> 622   prefix, package_path = find_package(self.import_name) 
    623   if prefix is None: 
    624    return os.path.join(package_path, 'instance') 

C:\Users\Natali\AppData\Local\Enthought\Canopy32\User\lib\site-packages\flask\helpers.pyc in find_package(import_name) 
    659  """ 
    660  root_mod_name = import_name.split('.')[0] 
--> 661  loader = pkgutil.get_loader(root_mod_name) 
    662  if loader is None or import_name == '__main__': 
    663   # import name is not found, or interactive/main module 

C:\Program Files\Enthought\Canopy32\App\appdata\canopy-1.3.0.1715.win-x86\lib\pkgutil.pyc in get_loader(module_or_name) 
    462  else: 
    463   fullname = module_or_name 
--> 464  return find_loader(fullname) 
    465 
    466 def find_loader(fullname): 

C:\Program Files\Enthought\Canopy32\App\appdata\canopy-1.3.0.1715.win-x86\lib\pkgutil.pyc in find_loader(fullname) 
    473  """ 
    474  for importer in iter_importers(fullname): 
--> 475   loader = importer.find_module(fullname) 
    476   if loader is not None: 
    477    return loader 

TypeError: find_module() takes exactly 3 arguments (2 given) 

對不起,很長的錯誤代碼。 任何想法爲什麼會發生?

回答

2

您需要先將代碼保存在文件中,然後從命令行運行它。只需在交互式提示符下鍵入它將不起作用。

這裏是一個最小瓶的應用是什麼樣子:

from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def index(): 
    return 'Hello World' 

if __name__ == '__main__': 
    app.run() 

這段代碼保存到一個文件(例如,server.py),然後用python server.py運行它。

+1

它有幫助,但編寫應用程序不是很方便。至於我。謝謝。 – zds

+0

應該將此報告爲錯誤嗎?這對於「hello world」來說是一個非常神祕的錯誤信息。 – endolith