Django无法在运行时导入本地python包

2024-06-01 04:25:23 发布

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

我正在开发一个简单的django应用程序,但是遇到了导入问题。以下是我的文件夹结构:

django_intuitive_pagination/
    ├── example
    │   ├── config
    │   │   ├── settings.py
    │   │   ├── urls.py
    │   │   └── wsgi.py
    │   ├── items
    │   │   ├── admin.py
    │   │   ├── apps.py
    │   │   ├── __init__.py
    │   │   ├── migrations/
    │   │   ├── models.py
    │   │   ├── tests.py
    │   │   ├── urls.py
    │   │   └── views.py
    │   └── manage.py
    ├── intuitive_pagination
    │   ├── __init__.py
    │   ├── mixins.py
    │   ├── paginator.py
    │   ├── templates/
    │   ├── templatetags/
    │   └── views.py
    ├── runtests.py
    └── tests/

我在example.config.settings.py中添加了intuitive_pagination作为django应用程序。在example.items.views.py中,我还从intuitive_pagination.views.py导入class。但是,当我运行python manage.py命令时,django抱怨ImportError: No module named 'intuitive_pagination'

example/config/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'items',
    'intuitive_pagination',
]


example/items/views.py

from intuitive_pagination.views import PaginationListView
...

我确信项目的顶层是用pythonpath实现的

>>> sys.path
[..., '/home/light/Workspace/PycharmProjects/DjangoProjects/django_intuitive_pagination']

满栈:

Traceback (most recent call last):
  File "/home/light/.virtualenvs/intuitive_pagination/lib/python3.5/site-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/home/light/.virtualenvs/intuitive_pagination/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
    autoreload.raise_last_exception()
  File "/home/light/.virtualenvs/intuitive_pagination/lib/python3.5/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception
    six.reraise(*_exception)
  File "/home/light/.virtualenvs/intuitive_pagination/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/home/light/.virtualenvs/intuitive_pagination/lib/python3.5/site-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/home/light/.virtualenvs/intuitive_pagination/lib/python3.5/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/light/.virtualenvs/intuitive_pagination/lib/python3.5/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/home/light/.virtualenvs/intuitive_pagination/lib/python3.5/site-packages/django/apps/config.py", line 94, in create
    module = import_module(entry)
  File "/home/light/.virtualenvs/intuitive_pagination/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 985, in _gcd_import
  File "<frozen importlib._bootstrap>", line 968, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
ImportError: No module named 'intuitive_pagination'

为什么django不能导入intuitive_pagination模块?你知道吗


Tags: djangoinpyhomelibpackageslinesite