简体   繁体   English

使用 Flask 重构测试应用程序时导入错误

[英]Import error when restructuring test application using Flask

I've been following the instructions on the following site:我一直在按照以下网站上的说明进行操作:

https://flask.palletsprojects.com/en/2.0.x/patterns/packages/ https://flask.palletsprojects.com/en/2.0.x/patterns/packages/

I've been getting the following error:我一直收到以下错误:

web_1  | Error: While importing 'passless', an ImportError was raised:
web_1  |
web_1  | Traceback (most recent call last):
web_1  |   File "/usr/local/lib/python3.9/site-packages/flask/cli.py", line 256, in locate_app
web_1  |     __import__(module_name)
web_1  |   File "/app/passless/__init__.py", line 4, in <module>
web_1  |     import passless.views
web_1  | ModuleNotFoundError: No module named 'passless.views'

setup.py安装程序.py

from setuptools import setup

setup(
    name='passless',
    packages=['passless'],
    include_package_data=True,
    install_requires=[
        'flask',
    ],
)

__init__.py

from flask import Flask
app = Flask(__name__)

import passless.views

docker-compose.yaml docker-compose.yaml

version: "3"
services:
  web:
    build: .
    image: passless
    environment:
      FLASK_DEBUG: 1
      FLASK_APP: passless
      FLASK_ENV: development
    ports: ['5001:5000']
    volumes: ['.:/app']

Here is the directory structure I am using:这是我正在使用的目录结构:

/passless
    setup.py
    /passless
        __init__.py
        index.py
        /static
            style.css
        /templates
            layout.html
            index.html
            login.html

Dockerfile: Dockerfile:

# syntax=docker/dockerfile:1

FROM python:3.9-slim-buster

WORKDIR /app

COPY . .

RUN pip3 install -e .

CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

Rename index.py to (or add) views.py:将 index.py 重命名为(或添加)views.py:

from passless import app

@app.route('/')
def index():
    return 'Hello World!'

Directory structure:目录结构:

/passless
    docker-compose.yaml
    Dockerfile
    setup.py
    /passless
        __init__.py
-       index.py
+       views.py

https://stackoverflow.com/a/15368107/16409598 this will fix your problem, and I am not a big fan of python but logically speaking according to your words, https://stackoverflow.com/a/15368107/16409598这将解决你的问题,我不是 python 的忠实粉丝,但从逻辑上讲,根据你的话,

*web_1  | Error: While importing 'passless', an ImportError was raised:
web_1  |
web_1  | Traceback (most recent call last):
web_1  |   File "/usr/local/lib/python3.9/site-packages/flask/cli.py", line 256, in locate_app
web_1  |     __import__(module_name)
web_1  |   File "/app/passless/__init__.py", line 4, in <module>
web_1  |     import passless.views
web_1  | ModuleNotFoundError: No module named 'passless.views'*

you are trying to load/use a file that does not exist, try creating the file then calling it, or maybe import passless.py!

**REMINDER: I AM NOT a fan of python, just here to help :)**
Best Regards

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM