我在web2py
下有一个在线运行的应用。现在,我要在web2py服务器上的控制器文件names.yml
中添加需要调用的(default.py)
文件。我应该在哪里保留.yml/.yaml
个文件。目前,我已使用default/names.yml
将其保留在视图中,但是当我在default.py中调用它时,如:
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()添加到我的托管应用程序中。我一直得到以下错误。你能来看看: 追溯 1。 2。 3。 4。 5。 6。 7。 8。 9。 10。 11。 12。 13。 Traceback(最近一次调用最后一次): File" /home/prakashsukhwal/web2py/gluon/restricted.py" ;,第220行,受限制 exec ccode在环境中 文件" /home/prakashsukhwal/web2py/applications/Sensiva/controllers/default.py" ;,第4行,在 nltk.download() 文件" /usr/local/lib/python2.7/dist-packages/nltk/downloader.py" ;,第644行,下载 self._interactive_download() 文件" /usr/local/lib/python2.7/dist-packages/nltk/downloader.py",第958行,在_interactive_download中 DownloaderShell(个体经营).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限制在第220行代码参数变量
文件/home/prakashsukhwal/web2py/applications/Sensiva/controllers/default.py在第4行代码参数变量
文件/usr/local/lib/python2.7/dist-packages/nltk/downloader.py下载第644行代码参数变量
文件/usr/local/lib/python2.7/dist-packages/nltk/downloader.py在_interactive_download第958行代码参数变量
文件/usr/local/lib/python2.7/dist-packages/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 上下文
答案 0 :(得分:0)
您可以将文件存储在任何位置,但如果您正在使用Python open
功能,则需要为其提供完整路径,而不是相对于web2py应用程序文件夹的路径。相反,尝试:
import os
dicttagger = DictionaryTagger([os.path.join(request.folder, 'views',
'default', 'names.yml'),
...])