I will import my models in celery.py. But when I import and run the runserver command, I get the following error:
File "/directory/manage.py", line 22, in <module>
main()
File "/directory/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/directory/venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File "/directory/venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 363, in execute
settings.INSTALLED_APPS
File "/directory/venv/lib/python3.9/site-packages/django/conf/__init__.py", line 82, in __getattr__
self._setup(name)
File "/directory/venv/lib/python3.9/site-packages/django/conf/__init__.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/directory/venv/lib/python3.9/site-packages/django/conf/__init__.py", line 170, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
......
File "/directory/__init__.py", line 1, in <module>
from .celery import app as celery_app
File "/directory/celery.py", line 9, in <module>
from apps.models import Model1
File "/directory/apps/models.py", line 2, in <module>
from django.contrib.auth.models import User, AbstractUser
File "/directory/venv/lib/python3.9/site-packages/django/contrib/auth/models.py", line 3, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/directory/venv/lib/python3.9/site-packages/django/contrib/auth/base_user.py", line 48, in <module>
class AbstractBaseUser(models.Model):
File "/directory/venv/lib/python3.9/site-packages/django/db/models/base.py", line 108, in __new__
app_config = apps.get_containing_app_config(module)
File "/directory/venv/lib/python3.9/site-packages/django/apps/registry.py", line 253, in get_containing_app_config
self.check_apps_ready()
File "/directory/venv/lib/python3.9/site-packages/django/apps/registry.py", line 136, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
My import code line in celery.py:
from app.models import model1, model2
You can try adding this line to your settings.py file:
import django
django.setup()
See here for solution.
if it doesn't work, this might be what you need:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "your_project.settings")
and these lines:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
If the first solution doesn't work here the alternative solution.
Finally, there is such a solution:
import django
# some variable declarations
world_mapping = {
'osm_id': 'osm_id',
}
if __name__ == '__main__':
django.setup()
# import AFTER setup
from app.models import WorldBorder
# from now I can access WorldBorder!!
I solved it by copying all tasks from celery.py to app tasks.py.
It also fixes itself when I delete celery related lines from __init__.py file.
Related
I cannot figure how to import correctly an existing Django project in Eclipse/Pydev, and I can't find my way in the documentation of Pydev. My question is pretty simple : I have an existing project from a different computer, that I want to migrate on a new one.
I installed Eclipse and Pydev on the new machine, and everything seems normal for a new project: I can create a new Django project and run it without issue. I also have been able to import my pre-existing project, but when I run the project, I encounter the following error :
Finding files... done.
Importing test modules ... Traceback (most recent call last):
File "/home/francois/.p2/pool/plugins/org.python.pydev.core_9.3.0.202203051235/pysrc/_pydev_runfiles/pydev_runfiles.py", line 468, in __get_module_from_str
mod = __import__(modname)
File "/home/francois/eclipse-workspace/Test/Test/urls.py", line 20, in <module>
path('', include('myApp.urls')),
File "/home/francois/anaconda3/envs/ipaidenv/lib/python3.10/site-packages/django/urls/conf.py", line 34, in include
urlconf_module = import_module(urlconf_module)
File "/home/francois/anaconda3/envs/ipaidenv/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/francois/eclipse-workspace/Test/myApp/urls.py", line 2, in <module>
from . import views
File "/home/francois/eclipse-workspace/Test/myApp/views.py", line 2, in <module>
from myApp.forms import CreateGroupForm, JoinGroupForm
File "/home/francois/eclipse-workspace/Test/myApp/forms.py", line 4, in <module>
from .models import Group, User
File "/home/francois/eclipse-workspace/Test/myApp/models.py", line 2, in <module>
from django.contrib.auth.models import AbstractUser
File "/home/francois/anaconda3/envs/ipaidenv/lib/python3.10/site-packages/django/contrib/auth/models.py", line 3, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/home/francois/anaconda3/envs/ipaidenv/lib/python3.10/site-packages/django/contrib/auth/base_user.py", line 48, in <module>
class AbstractBaseUser(models.Model):
File "/home/francois/anaconda3/envs/ipaidenv/lib/python3.10/site-packages/django/db/models/base.py", line 108, in __new__
app_config = apps.get_containing_app_config(module)
File "/home/francois/anaconda3/envs/ipaidenv/lib/python3.10/site-packages/django/apps/registry.py", line 253, in get_containing_app_config
self.check_apps_ready()
File "/home/francois/anaconda3/envs/ipaidenv/lib/python3.10/site-packages/django/apps/registry.py", line 136, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
ERROR: Module: Test.urls could not be imported (file: /home/francois/eclipse-workspace/Test/Test/urls.py).
done.
Traceback (most recent call last):
File "/home/francois/.p2/pool/plugins/org.python.pydev.core_9.3.0.202203051235/pysrc/runfiles.py", line 273, in <module>
main()
File "/home/francois/.p2/pool/plugins/org.python.pydev.core_9.3.0.202203051235/pysrc/runfiles.py", line 97, in main
return pydev_runfiles.main(configuration) # Note: still doesn't return a proper value.
File "/home/francois/.p2/pool/plugins/org.python.pydev.core_9.3.0.202203051235/pysrc/_pydev_runfiles/pydev_runfiles.py", line 874, in main
PydevTestRunner(configuration).run_tests()
File "/home/francois/.p2/pool/plugins/org.python.pydev.core_9.3.0.202203051235/pysrc/_pydev_runfiles/pydev_runfiles.py", line 801, in run_tests
get_django_test_suite_runner()(run_tests).run_tests([])
File "/home/francois/anaconda3/envs/ipaidenv/lib/python3.10/site-packages/django/test/runner.py", line 723, in run_tests
databases = self.get_databases(suite)
File "/home/francois/anaconda3/envs/ipaidenv/lib/python3.10/site-packages/django/test/runner.py", line 702, in get_databases
databases = self._get_databases(suite)
File "/home/francois/anaconda3/envs/ipaidenv/lib/python3.10/site-packages/django/test/runner.py", line 690, in _get_databases
for test in suite:
TypeError: 'NoneType' object is not iterable
ipaidenv is the name of my conda environment, Test is the project name.
I am pretty sure there is something very simple that I didn't do right, but I can't find what, can anyone help?
Many thanks!
I was about to publish this as a bug on the Pub/Sub repo, but I thought I'd ask here first.
I'm just trying to set up an HTTP-triggered Cloud Function that will act as a Webhook and upon receiving a POST request will publish a message. It seems simple enough, so I coded it up and deployed it. However, it kept crashing. So I tried running it locally using functions-framework, and found the culprit to be from google.cloud import pubsub_v1 which is causing the error AttributeError: module 'grpc.experimental.aio' has no attribute 'Call'
Environment details
Running on a Cloud Function with Python 3.7
Code example
main.py
from flask import Flask, request, abort, Response
import hmac
import hashlib
import base64
import os
import requests
from google.cloud import pubsub_v1
app = Flask(__name__)
#app.route('/', methods=['POST'])
def connectToSheets(request):
# Do stuff
if __name__ == '__main__':
app.run()
requirements.txt
# Dependencies
flask==1.1.2
requests==2.24.0
google-cloud-pubsub==1.7.0
Stack trace
Traceback (most recent call last):
File "c:\users\user\appdata\local\programs\python\python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\user\appdata\local\programs\python\python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\user\AppData\Local\Programs\Python\Python37\Scripts\functions-framework.exe\__main__.py", line 7, in <module>
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 717, in main
rv = self.invoke(ctx)
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 555, in invoke
return callback(*args, **kwargs)
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\functions_framework\_cli.py", line 37, in _cli
app = create_app(target, source, signature_type)
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\functions_framework\__init__.py", line 229, in create_app
spec.loader.exec_module(source_module)
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\user\Desktop\Cookiestruct - Summer 2020 Internship\Automation\Artist\cloudpy\connectToShopify\main.py", line 8, in <module>
from google.cloud import pubsub_v1
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\cloud\pubsub_v1\__init__.py", line 18, in <module>
from google.cloud.pubsub_v1 import publisher
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\cloud\pubsub_v1\publisher\__init__.py", line 17, in <module>
from google.cloud.pubsub_v1.publisher.client import Client
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\cloud\pubsub_v1\publisher\client.py", line 32, in <module>
from google.cloud.pubsub_v1.gapic import publisher_client
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\cloud\pubsub_v1\gapic\publisher_client.py", line 28, in <module>
import google.api_core.gapic_v1.client_info
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\api_core\gapic_v1\__init__.py", line 26, in <module>
from google.api_core.gapic_v1 import method_async # noqa: F401
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\api_core\gapic_v1\method_async.py", line 20, in <module>
from google.api_core import general_helpers, grpc_helpers_async
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\api_core\grpc_helpers_async.py", line 38, in <module>
class _WrappedCall(aio.Call):
AttributeError: module 'grpc.experimental.aio' has no attribute 'Call'
Any help is appreciated thanks!
I'm trying to add ChartsJS as an extra view in my Django App but I keep getting an Import Error. I have no idea why. I don't have any circular dependencies as far as I can find. Similar StackOverflow questions don't seem to match the problem. I'm totally stuck.
The problematic view is Analytics view.
project/app/urls.py:
# -*- coding: utf-8 -*-
from __future__ import (
absolute_import, division, print_function, unicode_literals
)
from django.conf.urls import url
from future import standard_library
from survey.views import ConfirmView, IndexView, SurveyCompleted, SurveyDetail, AnalyticsView
from survey.views.survey_result import serve_result_csv
standard_library.install_aliases()
urlpatterns = [
url(r'^$', IndexView.as_view(), name='survey-list'),
url(r'^(?P<id>\d+)/', SurveyDetail.as_view(), name='survey-detail'),
url(r'^csv/(?P<pk>\d+)/', serve_result_csv, name='survey-result'),
url(r'^(?P<id>\d+)/completed/', SurveyCompleted.as_view(),
name='survey-completed'),
url(r'^(?P<id>\d+)-(?P<step>\d+)/', SurveyDetail.as_view(),
name='survey-detail-step'),
url(r'^confirm/(?P<uuid>\w+)/', ConfirmView.as_view(),
name='survey-confirmation'),
url(r'^analytics/$', AnalyticsView.as_view(),
name='analytics-view'),
]
project/app/views/analytics_view.py:
# -*- coding: utf-8 -*-
from __future__ import (
absolute_import, division, print_function, unicode_literals
)
from builtins import super
from future import standard_library
from django.views.generic.base import TemplateView
from django.contrib.auth.models import User
standard_library.install_aliases()
import arrow
class AnalyticsView(TemplateView):
template_name = "survey/analytics.html"
...
I've read it may be to do with Settings, but I can't see any configuration problems there -
project/settings.py:
ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_URL = '/bootstrap_admin/static/'
STATICFILES_DIRS = [
os.path.normpath(os.path.join(ROOT, '..', "survey", "static")),
]
Traceback:
Unhandled exception in thread started by <function wrapper at 0x05CBB9F0>
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 227, in wrapper
fn(*args, **kwargs)
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 125, in inner_run
self.check(display_num_errors=True)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 359, in check
include_deployment_checks=include_deployment_checks,
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 346, in _run_checks
return checks.run_checks(**kwargs)
File "C:\Python27\lib\site-packages\django\core\checks\registry.py", line 81, in run_checks
new_errors = check(app_configs=app_configs)
File "C:\Python27\lib\site-packages\django\core\checks\urls.py", line 16, in check_url_config
return check_resolver(resolver)
File "C:\Python27\lib\site-packages\django\core\checks\urls.py", line 26, in check_resolver
return check_method()
File "C:\Python27\lib\site-packages\django\urls\resolvers.py", line 254, in check
for pattern in self.url_patterns:
File "C:\Python27\lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Python27\lib\site-packages\django\urls\resolvers.py", line 405, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\Python27\lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Python27\lib\site-packages\django\urls\resolvers.py", line 398, in urlconf_module
return import_module(self.urlconf_name)
File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
File "C:\Users\ronaldg\Documents\csa-survey\urls.py", line 18, in <module>
url(r'^survey/', include('survey.urls')),
File "C:\Python27\lib\site-packages\django\conf\urls\__init__.py", line 50, in include
urlconf_module = import_module(urlconf_module)
File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
File "C:\Users\ronaldg\Documents\csa-survey\survey\urls.py", line 9, in <module>
from survey.views import ConfirmView, IndexView, SurveyCompleted, SurveyDetail, AnalyticsView
ImportError: cannot import name AnalyticsView
Any ideas what I'm doing wrong?
The code you posted shows that your AnalyticsView is in its own file; you need to import that file.
from survey.views.analytics_view import AnalyticsView
I wanted to add the first model to an already working app, and now I can't start it because it always gives AppRegistryNotReady. This does only happen, if my model MailLog is child of models.Model.
from __future__ import unicode_literals
from django.db import models
#class MailLog(models.Model): # like this, it crashes
class MailLog(): # like this, it works
# Field definitions
recipient = models.EmailField()
created = models.DateTimeField(auto_now_add=True)
template = models.CharField(max_length=500)
error = models.TextField(null=True)
def __str__(self):
return self.recipient+" "+self.template+"("+str(self.created)+")"
The error occurs no matter what's inside the class, even if there is only a pass. However, I can import my models in the admin.py, and it crashes when I import from a file I called core.py. That file looks like this:
import boto3
from botocore.exceptions import ClientError
from django.template import loader
from django.conf import settings
from .templates import *
from .models import MailLog
The traceback looks like this
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 316, in execute
settings.INSTALLED_APPS
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/conf/__init__.py", line 53, in __getattr__
self._setup(name)
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/conf/__init__.py", line 41, in _setup
self._wrapped = Settings(settings_module)
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/conf/__init__.py", line 97, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/home/niels/anaconda3/envs/app/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/niels/Dokumente/jobapp/deploy/backend/settings.py", line 255, in <module>
django.setup()
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/apps/config.py", line 90, in create
module = import_module(entry)
File "/home/niels/anaconda3/envs/app/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/niels/Dokumente/jobapp/deploy/ses_mail/__init__.py", line 1, in <module>
from .core import send
File "/home/niels/Dokumente/jobapp/deploy/ses_mail/core.py", line 7, in <module>
from .admin import MailLog
File "/home/niels/Dokumente/jobapp/deploy/ses_mail/admin.py", line 2, in <module>
from .models import *
File "/home/niels/Dokumente/jobapp/deploy/ses_mail/models.py", line 6, in <module>
class MailLog(models.Model):
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/db/models/base.py", line 105, in __new__
app_config = apps.get_containing_app_config(module)
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/apps/registry.py", line 237, in get_containing_app_config
self.check_apps_ready()
File "/home/niels/anaconda3/envs/app/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
You should not be importing Django models in your app's __init__ (or causing them to be imported by importing from core. If you use an empty __init__.py it should stop the error.
Can U tell me how to access models before all the apps gets loaded
This is my mqtt.py which was initialized in init.py and accessing
models
import paho.mqtt.client as mqtt
from Transport.models import BusPosition
# Broker CONNACK response
def on_connect(client,userdata,flags,rc):
print ("Connected with result code "+str(rc))
# Subcribing to topic and recoonect for
client.subscribe("trackrkct")
#Receive message
def on_message(client,userdata,msg):
print(msg.topic+" "+str(msg.payload))
BusPosition.create(1, "Mon, 23 May 2016 08:30:15 GMT", 11.0998, 77.9098)
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.hivemq.com",1883,60)
This is my init.py where mqtt.py was initialized
from kctsmarttransport import mqtt
mqtt.client.loop_start()
and this is my models.py
from __future__ import unicode_literals
from django.db import models
class BusPosition(models.Model):
bus = models.ForeignKey(Bus)
time = models.DateTimeField
lat = models.FloatField(max_length=20)
lng = models.FloatField(max_length=20)
#classmethod
def create(cls,bus,time,lat,lng):
busPosition = cls(bus=bus,time=time,lat=lat,lng=lng)
busPosition.save()
return busPosition
and I got these errors as apps aren't loaded yet
"C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\bin\runnerw.exe" C:\Users\Navin\DjangoProject\kct_transport_env\Scripts\python.exe C:/Users/Navin/DjangoProject/kctsmarttransport/manage.py runserver 5000
Traceback (most recent call last):
File "C:/Users/Navin/DjangoProject/kctsmarttransport/manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\Navin\DjangoProject\kct_transport_env\lib\site-packages\django\core\management\__init__.py", line 367, in execute_from_command_line
utility.execute()
File "C:\Users\Navin\DjangoProject\kct_transport_env\lib\site-packages\django\core\management\__init__.py", line 316, in execute
settings.INSTALLED_APPS
File "C:\Users\Navin\DjangoProject\kct_transport_env\lib\site-packages\django\conf\__init__.py", line 53, in __getattr__
self._setup(name)
File "C:\Users\Navin\DjangoProject\kct_transport_env\lib\site-packages\django\conf\__init__.py", line 41, in _setup
self._wrapped = Settings(settings_module)
File "C:\Users\Navin\DjangoProject\kct_transport_env\lib\site-packages\django\conf\__init__.py", line 97, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "c:\python27\Lib\importlib\__init__.py", line 37, in import_module
__import__(name)
File "C:\Users\Navin\DjangoProject\kctsmarttransport\kctsmarttransport\__init__.py", line 1, in <module>
from kctsmarttransport import mqtt
File "C:\Users\Navin\DjangoProject\kctsmarttransport\kctsmarttransport\mqtt.py", line 2, in <module>
from Transport.models import BusPosition
File "C:\Users\Navin\DjangoProject\kctsmarttransport\Transport\models.py", line 6, in <module>
class Bus(models.Model):
File "C:\Users\Navin\DjangoProject\kct_transport_env\lib\site-packages\django\db\models\base.py", line 105, in __new__
app_config = apps.get_containing_app_config(module)
File "C:\Users\Navin\DjangoProject\kct_transport_env\lib\site-packages\django\apps\registry.py", line 237, in get_containing_app_config
self.check_apps_ready()
File "C:\Users\Navin\DjangoProject\kct_transport_env\lib\site-packages\django\apps\registry.py", line 124, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
Process finished with exit code 1