首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ImportError:无法从其中导入名称“json”

ImportError:无法从其中导入名称“json”
EN

Stack Overflow用户
提问于 2022-02-19 22:41:20
回答 10查看 47.7K关注 0票数 55

我试图让一个Flask和Docker应用程序工作,但是当我尝试使用Visual终端中的docker-compose up命令运行它时,它给了我一个名为ImportError: cannot import name 'json' from itsdangerous的ImportError。我曾试图寻找解决这一问题的可能办法,但到目前为止,这里或任何其他地方都没有多少解决办法。我能找到的唯一两种解决方案是将MarkupSafe及其危险的当前安装更改为更高的版本:https://serverfault.com/questions/1094062/from-itsdangerous-import-json-as-json-importerror-cannot-import-name-json-fr和GitHub上的另一个解决方案告诉我从本质上更改MarkUpSafe及其危险的安装-- https://github.com/aws/aws-sam-cli/issues/3661。我还尝试创建一个名为veganetworkscriptenv的虚拟环境来安装软件包,但也失败了。我目前使用的是Flas2.0.0和Docker5.0.0,错误发生在vegamain.py的第8行。

下面是我尝试运行程序时得到的完整ImportError:

代码语言:javascript
运行
复制
veganetworkscript-backend-1  | Traceback (most recent call last):
veganetworkscript-backend-1  |   File "/app/vegamain.py", line 8, in <module>
veganetworkscript-backend-1  |     from flask import Flask
veganetworkscript-backend-1  |   File "/usr/local/lib/python3.9/site-packages/flask/__init__.py", line 19, in <module>
veganetworkscript-backend-1  |     from . import json
veganetworkscript-backend-1  |   File "/usr/local/lib/python3.9/site-packages/flask/json/__init__.py", line 15, in <module>
veganetworkscript-backend-1  |     from itsdangerous import json as _json
veganetworkscript-backend-1  | ImportError: cannot import name 'json' from 'itsdangerous' (/usr/local/lib/python3.9/site-packages/itsdangerous/__init__.py)
veganetworkscript-backend-1 exited with code 1

下面是我的requirements.txt、vegamain.py、Dockerfile和docker-compose.yml文件:

requirements.txt:

代码语言:javascript
运行
复制
Flask==2.0.0
Flask-SQLAlchemy==2.4.4
SQLAlchemy==1.3.20
Flask-Migrate==2.5.3
Flask-Script==2.0.6
Flask-Cors==3.0.9
requests==2.25.0
mysqlclient==2.0.1
pika==1.1.0
wolframalpha==4.3.0

vegamain.py:

代码语言:javascript
运行
复制
# Veganetwork (C) TetraSystemSolutions 2022
# all rights are reserved.  
# 
# Author: Trevor R. Blanchard Feb-19-2022-Jul-30-2022
#

# get our imports in order first
from flask import Flask # <-- error occurs here!!!

# start the application through flask.
app = Flask(__name__)

# if set to true will return only a "Hello World" string.
Debug = True

# start a route to the index part of the app in flask.
@app.route('/')
def index():
    if (Debug == True):
        return 'Hello World!'
    else:
        pass

# start the flask app here --->
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0') 

Dockerfile:

代码语言:javascript
运行
复制
FROM python:3.9
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
COPY . /app

docker-compose.yml:

代码语言:javascript
运行
复制
version: '3.8'
services:
  backend:
    build:
      context: .
      dockerfile: Dockerfile
    command: 'python vegamain.py'
    ports:
      - 8004:5000
    volumes:
      - .:/app
    depends_on:
      - db

#  queue:
#    build:
#      context: .
#      dockerfile: Dockerfile
#    command: 'python -u consumer.py'
#    depends_on:
#      - db

  db:
    image: mysql:5.7.22
    restart: always
    environment:
      MYSQL_DATABASE: admin
      MYSQL_USER: root
      MYSQL_PASSWORD: root
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - .dbdata:/var/lib/mysql
    ports:
      - 33069:3306

我怎样才能确切地修正这段代码?谢谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71189819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档