2014-06-27 41 views
0

我有一個應用程序在web2py下在線運行。現在,我添加names.yml文件,我需要在web2py服務器上的我的控制器文件(default.py)中調用。我應該在哪裏保留.yml/.yaml文件。目前,我已經把它們放在意見與default/names.yml,但是當我把它在default.py像:Web2py應用程序:如何在控制器中引用.yaml文件?

dicttagger = DictionaryTagger([ 'default/names.yml', 'default/surname.yml']) 

我得到沒有這樣的文件錯誤。 下面也試過:

dicttagger = DictionaryTagger([ 'views/default/names.yml', 'views/default/surname.yml']) 

同樣的錯誤

級快照作爲下:

class DictionaryTagger(object): 

    def __init__(self, dictionary_paths): 
     files = [open(path, 'r') for path in dictionary_paths] 
     dictionaries = [yaml.load(dict_file) for dict_file in files] 
     map(lambda x: x.close(), files) 

任何建議,如何做到這一點還是我做的we2py使用YAML/YML文件的錯誤並且它在託管在線的web2py應用程序中不起作用?

問題2

謝謝。它解決了一個錯誤,但我不知道如何將nltk.download()添加到我的託管應用程序中。我不斷收到下面的錯誤。你能PLS看看: 回溯 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 回溯(最近呼叫最後): 文件「/home/prakashsukhwal/web2py/gluon/restricted.py」,第220行,受限制 執行代碼在環境中 文件「/ home/prakashsukhwal/web2py/applications/Sensiva/controllers/default.py「,第4行,在 nltk.download() 文件」/usr/local/lib/python2.7/d ist-packages/nltk/downloader.py「,行644,在下載 self._interactive_download() 文件」/usr/local/lib/python2.7/dist-packages/nltk/downloader.py「,行958, in _interactive_download DownloaderShell(self).run() 運行中的文件「/usr/local/lib/python2.7/dist-packages/nltk/downloader.py」,第981行 user_input = raw_input('Downloader>' ).strip() 的EOFError:EOF讀一本線 錯誤快照幫助 (EOF時讀線)

檢查屬性

框架

時在

文件/home/prakashsukhwal/web2py/gluon/restricted.py第4行代碼限制在管線220碼的參數的變量

文件/home/prakashsukhwal/web2py/applications/Sensiva/controllers/default.py在參數變量

文件/usr/local/lib/python2.7/dist-packages/nltk/downloader.py在下載在行644碼參數變量

文件/usr/local/lib/python2.7 /dist-packages/nltk/downloader.py in _interactive_download at 958代碼參數變量

文件/ usr/local/lib/python2。7/DIST-包/ NLTK/downloader.py在運行於線981的代碼的參數的變量

函數參數列表

(個體=)

代碼

def run(self): 
    print 'NLTK Downloader' 
    while True: 
     self._simple_interactive_menu(
      'd) Download', 'l) List', ' u) Update', 'c) Config', 'h) Help', 'q) Quit') 
     user_input = raw_input('Downloader> ').strip() 

     if not user_input: print; continue 
     command = user_input.lower().split()[0] 
     args = user_input.split()[1:] 
     try: 

變量

user_input undefined builtinraw_input ).strip undefined Context

+0

將問題2作爲單獨問題發佈可能會更好。 – Anthony

回答

0

您可以將文件存儲到任意位置,但如果您使用的是Python open函數,則需要爲其提供完整路徑,而不是相對於web2py應用程序文件夾的路徑。相反,請嘗試:

import os 

dicttagger = DictionaryTagger([os.path.join(request.folder, 'views', 
              'default', 'names.yml'), 
           ...]) 
+0

謝謝你幫助我。 :) 你可以請問題2以及幫助 – miku

相關問題