繁体   English   中英

为什么 manage.py 看不到 __init__ 文件?

[英]Why manage.py can't see the __init__ file?

我只是在制作一个具有这种结构的博客应用程序:

blog/
    __init__.py
    main.py
    manage.py
    config.py
    tests.py
    __pycache__
    ...

当开发服务器运行时,我也运行manage.py

 import unittest, sys
 from flask.cli import FlaskGroup
 from blog import create_app

我不明白为什么我在第三行no module named blog上出现错误。 几乎就好像它没有__init__.py的存在。

编辑:

 import unittest, sys
 from flask.cli import FlaskGroup
 from . import create_app

结构体:

├── blog
│   ├── client
│   ├── config.py
│   ├── __init__.py
│   ├── main.py
│   ├── manage.py
│   ├── __pycache__
│   ├── templates
│   ├── tests
│   └── venv

来自manage.py的 output :

(venv) mark@python:~/blog$ python manage.py test
Traceback (most recent call last):
  File "manage.py", line 3, in <module>
    from . import create_app
ImportError: attempted relative import with no known parent package

另一个编辑:

我选择了另一种结构:

── my_blog
│   ├── project
│   │   ├── __init__.py
│   │   └── main.py
│   ├── tests
│   │   ├── __init__.py
│   │   └── main_test.py
│   └── venv
│       ├── bin
│       ├── lib
│       └── pyvenv.cfg


mark@python:~/my_blog/tests$ python3 main_test.py
Traceback (most recent call last):
  File "main_test.py", line 1, in <module>
    from project.main import app
ModuleNotFoundError: No module named 'project'

将父目录添加到PYTHONPATH解决了这个问题。 谢谢大家的指点。

暂无
暂无

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

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