簡體   English   中英

在python3.6中導入錯誤

[英]Importing error in python3.6

在此處輸入圖片說明

from flask import Flask, request
from flask_restful import Resource, Api
from flask_jwt import JWT, jwt_required
from .security import authenticate, identity


app = Flask(__name__)
app.secret_key = "jose"
api = Api(app)  # Can easily add resources to this "app"

jwt = JWT(app, authenticate, identity)

items = []

# every resource has to be a class
class Item(Resource):
    @jwt_required()
    def get(self, name):

        item = next(filter(lambda x: x["name"] == name, items), None)

        return {"item": item}, 200 if item else 404

    def post(self, name):

        if next(filter(lambda x: x["name"] == name, items), None) is not None:
            return {"Message": "An Item with the name {} already exit".format(name)}, 400

        data = request.get_json()

        item = {"name": name, "price": data["price"]}
        items.append(item)
        return item, 201 # 201 is status code for created


class ItemList(Resource):

    def get(self):
        return {"items": items}



api.add_resource(Item, "/item/<string:name>")
api.add_resource(ItemList, "/items")

app.run(port=5000, debug=True)


from werkzeug.security import safe_str_cmp
from .user import User

users = [
    User(1, "bob", "asdf")
]

username_mapping = {u.username: u for u in users}

userid_mapping = {u.id: u for u in users}


def authenticate(username, password):
    user = username_mapping.get(username, None)
    if user and safe_str_cmp(user.password, password):

        return user


def identity(payload):
    user_id = payload["identity"]
    return userid_mapping.get(user_id, None)

我正在嘗試將身份驗證和身份從 security.py 導入到我的 app.py 中。 它們都在同一目錄中。

linter 沒有給我任何錯誤,但是當我運行 app.py 時,它給了我這個錯誤:

ModuleNotFoundError: 沒有名為“ main .security”的模塊; ' main ' 不是一個包

我不確定這是從哪里來的。 是不是不識別security.py 存在於同一目錄中?

問題似乎是 python 沒有進入正確的文件夾。 我的代碼是一個稱為代碼和代碼文件夾中是我在我的根文件夾根文件夾里面Section4也是VENV文件夾。 我最終將我的文件從Code移到了Section4 我運行了 app.py,它再次開始順利運行該應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM