【发布时间】:2017-12-02 13:25:54
【问题描述】:
我有以下问题,似乎无法找到答案,尽管我认为它相当简单......
我正在尝试将 Python/flask 中的字符串从一个函数传递到另一个函数。 没有烧瓶,这可以工作并打印我的文本。
[...]
def sample(args):
with open(os.path.join(args.save_dir, 'config.pkl'), 'rb') as f:
saved_args = cPickle.load(f)
with open(os.path.join(args.save_dir, 'chars_vocab.pkl'), 'rb') as f:
chars, vocab = cPickle.load(f)
model = Model(saved_args, training=False)
with tf.Session() as sess:
tf.global_variables_initializer().run()
saver = tf.train.Saver(tf.global_variables())
ckpt = tf.train.get_checkpoint_state(args.save_dir)
if ckpt and ckpt.model_checkpoint_path:
saver.restore(sess, ckpt.model_checkpoint_path)
text = model.sample(sess, chars, vocab, args.n, args.prime,
args.sample).encode('utf-8')
printer(text)
def printer(text):
print(text)
这工作正常并打印我的字符串。 如果我尝试实现烧瓶,我会在 127.0.0.1:5000/text 上收到内部服务器错误
def sample(args):
with open(os.path.join(args.save_dir, 'config.pkl'), 'rb') as f:
saved_args = cPickle.load(f)
with open(os.path.join(args.save_dir, 'chars_vocab.pkl'), 'rb') as f:
chars, vocab = cPickle.load(f)
model = Model(saved_args, training=False)
with tf.Session() as sess:
tf.global_variables_initializer().run()
saver = tf.train.Saver(tf.global_variables())
ckpt = tf.train.get_checkpoint_state(args.save_dir)
if ckpt and ckpt.model_checkpoint_path:
saver.restore(sess, ckpt.model_checkpoint_path)
text = model.sample(sess, chars, vocab, args.n, args.prime,
args.sample).encode('utf-8')
printer(text)
@app.route('/text')
def printer(text):
return(text)
如果我只是尝试显示一些文本而不传递字符串,它可以正常工作。
我对 python 和烧瓶完全陌生,如果能提供任何帮助,我将不胜感激!
这是来自终端的 Traceback:
[2017-12-02 15:47:06,244] ERROR in app: Exception on /text [GET]
Traceback (most recent call last):
File "/Users/marcel/tensorflow/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/marcel/tensorflow/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/marcel/tensorflow/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/marcel/tensorflow/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/marcel/tensorflow/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/marcel/tensorflow/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
TypeError: printer() missing 1 required positional argument: 'text'
【问题讨论】:
-
您能否发布整个回溯(作为对您问题的编辑)。谢谢!
标签: python string flask parameter-passing