Flask api不是远程读取bytearray,而是本地读取

2024-09-29 21:46:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我的client.py如下:

import requests
with open("image.jpg", "rb") as imageFile:
#   fil=imageFile.read()
#   print(fil) 
    url = 'http://10.7.104.57:5000/julytest'
    headers = {'Content-Type': 'application/octet-stream'}
    try:
        response = requests.post(url, files=[('image_data',('image.jpg', imageFile, 'image/jpg'))])
    except Exception as e:
        print(e)
print(response.text)

My server.py如下所示:

@app.route('/julytest', methods=['GET', 'POST'])
def get():
    print(request.files['image_data'])
    img = request.files['image_data']
    fil = img.filename
    image = cv2.imread(img.filename)
    rows, cols, channels = image.shape
    #do other processing

当我在本地(127.0.0.1:5000)运行客户端时,在我的机器上以及API所在的服务器上,我得到了期望的结果

但是,当我从本地计算机运行client.py到远程API计算机时,我得到一个错误

 error: (-215) (scn == 3 || scn == 4) && (depth == 0 || depth == 5) in function cvtColor

指示图像丢失或未读取。我在删除rows,cols,channels = image.shape之前的评论时得到了证实

AttributeError: 'NoneType' object has no attribute 'shape'

OpenCV的版本在本地和远程上都是相同的,操作系统在这两台机器上都是ubuntu 14.04


Tags: pyimageclienturlimgdataasfiles

热门问题