TypeError:在方法“ file_source_make”中,类型为“ char const *”的参数2

时间:2019-08-22 14:43:09

标签: python flask webserver gnuradio

在下面的代码中,我试图导入一个.dat文件,该文件具有要在我的Python Flask Web服务器中运行的IQ数据。该程序首先正常运行,然后当我浏览到本地视图然后点击提交时,程序将返回此错误:

错误回溯:

filename
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 138-727-058
127.0.0.1 - - [22/Aug/2019 10:31:59] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [22/Aug/2019 10:32:04] "POST /getfile HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 2463, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 2449, in wsgi_app
    response = self.handle_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1866, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/fit-pc/Desktop/python-web-server/Experiment-8/app.py", line 60, in getfile
    tb.getfile(request.files.get('filename'))
  File "/home/fit-pc/Desktop/python-web-server/Experiment-8/app.py", line 21, in getfile
    self.blocks_file_source_0 = blocks.file_source(gr.sizeof_float*1, filename, True)
  File "/usr/lib/python2.7/dist-packages/gnuradio/blocks/blocks_swig0.py", line 1092, in make
    return _blocks_swig0.file_source_make(itemsize, filename, repeat)
TypeError: in method 'file_source_make', argument 2 of type 'char const *'
127.0.0.1 - - [22/Aug/2019 10:32:04] "GET /getfile?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
127.0.0.1 - - [22/Aug/2019 10:32:04] "GET /getfile?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
127.0.0.1 - - [22/Aug/2019 10:32:04] "GET /getfile?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -
127.0.0.1 - - [22/Aug/2019 10:32:04] "GET /getfile?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 

app.py代码:

from __future__ import print_function
from gnuradio import analog
from gnuradio import audio
from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser


class TopBlock22(gr.top_block): 

    def __init__(self, filename ):

        gr.top_block.__init__(self, "Top Block 22")


    def getfile(self, filename):
        self.filename = filename
        self.blocks_file_source_0 = blocks.file_source(gr.sizeof_float*1, filename, True)
        self.audio_sink = audio.sink(32000, '', True)
        self.connect((self.blocks_file_source_0, 0), (self.audio_sink, 0))

# -----------------------------------------------------------------------------

from flask import Flask, flash, request, redirect, jsonify, render_template_string



app = Flask(__name__)


tb = TopBlock22('filename')
print('filename')
tb.start()


@app.route("/")
def index():
    args_filename = request.args.get('filename', '- empty -')

    return render_template_string('''
Previous filename: {{ filename }}
<hr>
<form action="getfile" method="POST" enctype="multipart/form-data">
    Project file path: <input type="file" name="filename"><br>
    <input type="submit" value="Submit">
</form>
''', filename=args_filename)


@app.route('/getfile', methods=['GET','POST'])
def getfile():
    #print('args:', request.args)
    #print('form:', request.form)
    #print('files:', request.files)

    #tb.getfile(filename)
    tb.getfile(request.files.get('filename'))
    return (filename)

    if result:
        result.save(result.filename) # TODO: save with unique name which couldn't overwrite file with passwords 
        return redirect('/?filename={}'.format(result.filename))

    return redirect('/')

    return (filename)



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

发生错误的位置的图像:

error location image

任何帮助解决该问题的帮助将受到高度赞赏。

0 个答案:

没有答案