Does django version 1.11 work with djongo package? - django

When I try to run the server using django==1.11 I get this error.
from djongo import models
File "/usr/local/lib/python3.6/dist-packages/djongo/models/__init__.py", line 3, in <module>
from .fields import (
File "/usr/local/lib/python3.6/dist-packages/djongo/models/fields.py", line 28, in <module>
from django.db.models.fields.mixins import FieldCacheMixin
ModuleNotFoundError: No module named 'django.db.models.fields.mixins'
But when I try doing the same using django==2 everything works fine.
Nothing regarding the Django version is given in the docs: https://nesdis.github.io/djongo/get-started/
The requirements.txt file in djongo on Github says it does support django==1.11.
sqlparse>=0.2.3
pymongo>=3.2.0
django>=1.11
Any help is appreciated.

The django.db.models.fields.mixins file is new in Django 2.0 (here is the commit where it was added).
If djongo imports this file, then it doesn't support Django 1.11.

So I found out what the issue was.Djongo package version==1.2.23 works with django==1.11

Related

ImportError create_namedtuple_class Django Modeltranslation

I have an error while trying to use django-modeltranslation 0.18.3 in Django 2.2.
Here's the end of the traceback:
[...]
from django.db.models.utils import create_namedtuple_class
ImportError: cannot import name 'create_namedtuple_class' from 'django.db.models.utils' (/home/me/project/.venv/lib/python3.10/site-packages/django/db/models/utils.py)
I can't figure what's wrong with modeltranslations and with django. I recreated a clean venv, nothing works.
Their CHANGELOG does not mention it, but they started using some code relative to django >= 3 in v0.18.3. Version 0.18.2 is the last one that supports django 2.2.

PyCharm doesn't resolve Django apps but the project works

This is the project structure generated from having run django-admin startproject school and python manage.py startapp quiz:
In INSTALLED_APPS I've added:
"quiz.apps.QuizConfig",
In order for this project to execute correctly, in school/quiz/views.py I have to import e.g. models from quiz.models instead of the commonly seen school.quiz.models. Otherwise the project fails to run:
As you can see above, PyCharm doesn't recognize quiz. It wants me to use school.quiz instead, but when I do that the project doesn't run:
File "/.../Code/breather/school/school/urls.py", line 19, in <module>
from quiz.views import QuestionView
File "/.../Code/breather/school/quiz/views.py", line 6, in <module>
from school.quiz.models import Question
ModuleNotFoundError: No module named 'school.quiz'
I'd really prefer to use school.quiz, but I can live with using quiz if needed. I just want PyCharm and runserver to reconcile on one way so that I can get on with my project.
These are my Django settings in PyCharm:
You can use "from .models import Question"

ImportError: cannot import name cygrpc

I am trying to use Firebase Native mode on Google App Engine - Standard. My python language is Python 2.7. When I try to from google.cloud import firestore, I get an error ImportError: cannot import name cygrpc
I have deployed virtualenv described in the documentation here.
pip install virtualenv
virtualenv env
source env/bin/activate
My appengine_config.py is
from google.appengine.ext import vendor
import os.path
# Add any libraries installed in the "lib" folder.
vendor.add('lib')
vendor.add(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'lib'))
my_app.py includes
from google.appengine.ext.webapp import template
from google.appengine.ext import ndb
from google.appengine.api import mail
import os
from google.cloud import firestore
(/base/alloc/tmpfs/dynamic_runtimes/python27g/43d5822312de17fd/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py:269)
Traceback (most recent call last):
File "/base/alloc/tmpfs/dynamic_runtimes/python27g/43d5822312de17fd/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/base/alloc/tmpfs/dynamic_runtimes/python27g/43d5822312de17fd/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 311, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/base/alloc/tmpfs/dynamic_runtimes/python27g/43d5822312de17fd/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/main.py", line 4, in <module>
from controllers import server, common, header
File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/controllers/server.py", line 10, in <module>
from google.cloud import firestore
File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/lib/google/cloud/firestore.py", line 18, in <module>
from google.cloud.firestore_v1 import __version__
File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/lib/google/cloud/firestore_v1/__init__.py", line 22, in <module>
from google.cloud.firestore_v1._helpers import GeoPoint
File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/lib/google/cloud/firestore_v1/_helpers.py", line 21, in <module>
import grpc
File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/lib/grpc/__init__.py", line 23, in <module>
from grpc._cython import cygrpc as _cygrpc
ImportError: cannot import name cygrpc
The question I have - can you use Firestore Native mode on Google App Engine Standard using Python 2.7? I need GAE- Standard because we are using Google Endpoint that is not support on GAE-Flex.
The doc here says App Engine Client library integration is not supported on Python2.7 GAE Standard environment. But I am not trying App Engine Client library, I am trying App Engine Server library in GAE Standard Environment.
How do I solve for import error for cygrpc? The solution here, says -
python -m pip install grpcio --ignore-installed
Is this recommended?
It's 2020, and you can now use grpcio (without explicitly adding it yourself as it's a built-in library) w/Cloud Firestore natively on App Engine with Python 2.7. Three things to make this work:
Add google-cloud-firestore to your requirements.txt file and install with pip install -U -t lib -r requirements.txt.
Add these lines to the libraries section of your app.yaml file:
libraries:
- name: grpcio
version: 1.0.0
- name: setuptools
version: 36.6.0
Ensure these lines are in your appengine_config.py file:
import pkg_resources
from google.appengine.ext import vendor
# Set path to your libraries folder.
path = 'lib'
# Add libraries installed in the path folder.
vendor.add(path)
# Add libraries to pkg_resources working set to find the distribution.
pkg_resources.working_set.add_entry(path)
Of course, we do recommend you eventually migrate to Python 3 to take advantage of the greater flexibility the next generations (of Python and App Engine) provide, esp. the ability to tap into other GCP services. However, caveat such a port isn't without effort if your app is complex & deeply-dependent on App Engine's 1st gen built-in services. Most of the suggestions above are derived from this section of the migration docs.
Once you're on Python 3, everything related to 3P libraries on App Engine becomes much easier, as I demonstrate in this other SO answer.
A while ago GRPC wasn't supported on GAE standard, see GRPC and types import error in App Engine Datastore. I didn't try since, but I don't see newer activity on issue 149.
Also the cython reference in the traceback suggests that it may include compiled code, which would violate the pure python standard environment sandbox restrictions that applies to the code you deploy.
Make sure that your installed python version bit(32/64) and your system bit(32/64) are matched.
If they are not matched please follow the solution mentioned at https://azurelessons.com/cannot-import-name-cygrpc/

Installation for SQLAlchemy Doesn't link to Flask

I am trying to install SQLAlchemy on a Windows 8 64 bit machine for Python 2.7
When I run the setup.py file that comes with the download from the SQLAlchemy site, a .egg file called 'SQLAlchemy-1.0.0-py2.7.egg' is placed in C:\Python27\Lib\site-packages.
But when I try to do a basic import of the library using an import statement on given in the SQLAlchemy documentation, I get an error message.
The import code is:
from flask.ext.sqlalchemy import SQLAlchemy
And the error message I get is:
c:\Users\Me\MyCode>ws_dbwrite.py
Traceback (most recent call last):
File "C:\Users\Me\MyCode\ws_dbwrite.py", line 2, in <module>
from flask.ext.sqlalchemy import SQLAlchemy
File "C:\Python27\lib\site-packages\flask-0.10.1-py2.7.egg\flask\exthook.py",
line 87, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named flask.ext.sqlalchemy
Should I be going about installation in a different manner? Or should the .egg file for SQLAlchemy go at a different file level? Or am I missing something obvious here?
Edit: If I change the import line to just
import SQLAlchemy
The import works, but Python does not recognize things like
db = SQLAlchemy(app)
as valid commands.
You have installed SQLAlchemy, but you are trying to use the Flask extension, Flask-SQLAlchemy. While the two are related, they are separate libraries. In order to use
from flask.ext.sqlalchemy import SQLAlchemy
you need to install it first.
pip install Flask-SQLAlchemy
(You installed SQLAlchemy directly from source. You can also do that for Flask-SQLAlchemy.)

datastore error after migrating to python2.7 - works fine on localhost

I understand that google.appengine.dist was removed from python2.7. What should I use instead?
application works fine on localhost, deployment seems to be successful, but I am getting this message online:
Error: Server Error
The server encountered an error and could not complete your request.
If the problem persists, please report your problem and mention this error message and the query that caused it.
Here is what my log says:
Traceback (most recent call last):
File
"/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 196, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 255, in _LoadHandler
handler = __import__(path[0])
File "/base/data/home/apps/s~quick-test/1.368856085074570769/django_bootstrap.py", line 54, in <module>
from google.appengine.dist import use_library
ImportError: No module named dist
Here's the line 54 from django_bootstrap.py:
from google.appengine.dist import use_library
use_library('django', '1.2')
GAE LAuncher version 1.8.2, had this problem with 1.8 too.
Python 2.7 configuration requires third-party libraries specified in app.yaml, so it might be sufficient to have this in your app.yaml file:
libraries:
- name: django
version: "1.2"
You can also use webapp2 that includes Django’s templating engine. Version 1.2 included with the SDK is part of App Engine, and you do not need to bundle Django yourself to use it.
import os
from google.appengine.ext.webapp import template
Also, with this code you don't need to call use_library() to explicitly select a Django version:
webapp_django_version = "1.2"