我需要帮助来解决这个错误,这个错误是在我尝试用Django代码运行任何python脚本时引发的。
这是一个错误:
****PS C:\Users\pebr6\Desktop\tutorial> & c:/Users/pebr6/Desktop/pythonEnvironments/1.0/Scripts/Activate.ps1
(1.0) PS C:\Users\pebr6\Desktop\tutorial> & c:/Users/pebr6/Desktop/pythonEnvironments/1.0/Scripts/python.exe c:/Users/pebr6/Desktop/tutorial/aplicaciones/principal/models.py
Traceback (most recent call last):
File "c:/Users/pebr6/Desktop/tutorial/aplicaciones/principal/models.py", line 5, in <module>
class Person(models.Model):
File "C:\Users\pebr6\Desktop\pythonEnvironments\1.0\lib\site-packages\django\db\models\base.py", line 107, in __new__
app_config = apps.get_containing_app_config(module)
File "C:\Users\pebr6\Desktop\pythonEnvironments\1.0\lib\site-packages\django\apps\registry.py", line 252, in get_containing_app_config
self.check_apps_ready()
File "C:\Users\pebr6\Desktop\pythonEnvironments\1.0\lib\site-packages\django\apps\registry.py", line 134, in check_apps_ready
settings.INSTALLED_APPS
File "C:\Users\pebr6\Desktop\pythonEnvironments\1.0\lib\site-packages\django\conf\__init__.py", line 76, in __getattr__
self._setup(name)
File "C:\Users\pebr6\Desktop\pythonEnvironments\1.0\lib\site-packages\django\conf\__init__.py", line 57, in _setup
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before acces**sing settings.******我的项目结构如下:
这是我在settings.py上的应用程序配置:
应用定义
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'aplicaciones.principal',
]manage.py文件中有下一个代码:
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tutorial.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()最后一个是我的wsgi.py文件:
import os
import sys
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tutorial.settings')
application = get_wsgi_application()
sys.path.append('C:/Users/pebr6/Desktop/pythonEnvironments/1.0/Scripts/python.exe')我的python版本为3.8.3,适用于64位窗口,我正在使用virtualenv创建不同的python环境。
全球环境是:
C:\Users\pebr6\AppData\Local\Programs\Python\Python38\python.exe
我只是在这里安装了虚拟主机。
我的项目的虚拟环境就在这条道路上:
c:\Users\pebr6\Desktop\pythonEnvironments\1.0\Scripts\python.exe
这里安装了django和django rest框架。
启动项目的步骤(例如)如下:
我也试过:
django-管理startapp
或
python manage.py startapp主
c:\Users\pebr6\Desktop\pythonEnvironments\1.0\Scripts\python.exe
因此,settings.json更改为:
"c:\Users\pebr6\Desktop\pythonEnvironments\1.0\Scripts\python.exe":“python.pythonPath”
在我将python3.8.3版本卸载为32位的64位版本之后,错误就开始发生了。我再次尝试卸载,我使用了带有全局或虚拟环境的两种版本,使用了虚拟环境,并且错误仍然在继续。
我不知道这是否重要,但这就是我的虚拟环境路径(我猜这是我的PYTHONPATH,不太确定):
我尝试打开manage.py外壳并运行命令:
导入sys
sys.path.append("c:\Users\pebr6\Desktop")或sys.path.append("c:\Users\pebr6\Desktop\tutorial")
但什么都没变。
我希望有人能帮助我解决这个问题,因为我在python上是新手,而且我还不懂很多东西。谢谢!
发布于 2020-06-10 11:01:26
好吧,我终于能解决问题了,这是因为我写错了代码。
我有点困惑,因为在得到这个错误之前,我运行了一些代码,这些代码运行得很好。当我更改python版本(卸载所有东西等等)时,我必须启动一个新的Django项目,当我开始从我自己的类中使用models.Model作为超类时,问题就出现了,上一次我没有这样做。
我想再次做的事情是在下一个链接上:
https://www.django-rest-framework.org/api-guide/serializers/
但是,当我试图将Person类扩展到models.Model而不是object时,出现了一个例外,因为我正在阅读这个链接中的内容:
https://www.django-rest-framework.org/tutorial/1-serialization/
这两个教程都是正确的,但我是在某种程度上合并了彼此的代码,并得到了这个错误。
这样的错误来自于蟒蛇初学者,谢谢!
发布于 2020-06-10 03:33:17
您不应该运行像python models.py这样的项目脚本,要使用django,必须首先发出python manage.py。
如果您想测试您的代码,应该在tests.py上编写一个测试。Django入门教程是开始学习如何在Django上进行测试的好地方。还有一个只用于测试的主题。
https://stackoverflow.com/questions/62294526
复制相似问题