【发布时间】:2021-02-17 01:13:00
【问题描述】:
我已经为该项目设置了一个 django 项目和一个应用程序,如下所示。 更改模型后,我可以进行迁移和迁移。 我可以运行服务器,并且管理页面按预期显示我的应用程序。 我能够运行 python manage.py shell,在 shell 中导入和操作我的模型。
但是,当我尝试从另一个 python 文件(在 pycharm 中)导入我的模型时,我收到一条错误消息,指出找不到我的应用程序的模块。
操作系统:
Distributor ID: LinuxMint
Description: Linux Mint 19.3 Tricia
Release: 19.3
Codename: tricia
IDE
PyCharm 2020.2.3 (Community Edition)
Build #PC-202.7660.27, built on October 6, 2020
Runtime version: 11.0.8+10-b944.34 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Linux 5.4.0-52-generic
GC: ParNew, ConcurrentMarkSweep
Memory: 1871M
Cores: 8
Non-Bundled Plugins: Statistic, com.alayouni.ansiHighlight, com.intellij.ideolog, org.toml.lang, ru.meanmail.plugin.requirements, com.jetbrains.plugins.ini4idea
Current Desktop: X-Cinnamon
Python:
python 3.6
姜戈
Django==3.1.3
我已经阅读了之前的相关问题:django-modulenotfounderror-no-module-named-restaurants 和django-modulenotfounderror,但我认为我的问题有些不同。
我没有移动文件或更改文件夹名称,我真的尽量按照教程保留它(我什至从 django doc 重新创建了 exat poll 应用程序示例并得到了同样的错误)。
我想这与我的环境变量设置不正确有关,但我对这一切都很陌生,我不完全了解我应该检查什么,我应该如何检查这些以及最后如何检查这些被固定。因此,如果问题与环境变量有关,我将不胜感激。谢谢!
在 pycharm 中,我有几个用于该项目的存储库,它们保存在一个文件夹中,我通常打开包含 pycharm 中所有存储库的文件夹。 这里感兴趣的 repo 称为 'static_data',它包含以下树:
├── backend
│ ├── manage.py
│ ├── static_data_app
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── migrations
│ │ │ └── 0001_initial.py
│ │ ├── models.py
│ │ ├── tests.py
│ │ ├── tools
│ │ │ ├── loading.py
│ │ │ ├── new_expiry.py
│ │ │ └── setup.py
│ │ ├── urls.py
│ │ └── views.py
│ └── static_data_project
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── __init__.py
├── README.md
└── test.py
我已经设置好了 static_data_project/settings.py
INSTALLED_APPS = [
'static_data_app.apps.StaticDataAppConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
然后当我尝试在 pycharm 中运行 static_data/test.py 时,其中包含以下代码:
import os
import sys
import django
os.environ['DJANGO_SETTINGS_MODULE'] = 'static_data.backend.static_data_project.settings'
django.setup()
from static_data.backend.static_data_app.models import Asset
if __name__ == '__main__':
my_list = list(Asset.objects.all())
print(my_list)
这就是我得到的 (提醒一下,在 pycharm 中,我将所有存储库都放在某个文件夹中,并且此处感兴趣的存储库称为 'static_data')
/home/[...]/env/bin/python3.6 /home/[...]/static_data/test.py
Traceback (most recent call last):
File "/home/[...]/static_data/test.py", line 6, in <module>
django.setup()
File "/home/[...]/env/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/[...]/env/lib/python3.6/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "/home/[...]/env/lib/python3.6/site-packages/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'static_data_app'
Process finished with exit code 1
【问题讨论】:
标签: python python-3.x django pycharm