Django möchte einfach nicht starten

Django, Flask, Bottle, WSGI, CGI…
Antworten
Neiqi
User
Beiträge: 26
Registriert: Freitag 18. Oktober 2019, 15:10

Sehr geehrte Python Community ich habe ein Problem,
(Vorab ich benutze ein Debian 9 V Server)
Ich möchte Django mit Highcarts verbinden und dazu ein Dashboard benutzen.
Welches ich nach diesem Tutorial gemacht habe : https://www.highcharts.com/blog/tutoria ... nd-django/
Nachdem ich alles Configuriert habe, kam ein Syntax Error in Python 3.5 mit Bootstrap.
Also habe ich mir gedacht dass ich Python upgrade
Welches ich nach diesem Tutorial gemacht habe :
https://www.rosehosting.com/blog/how-to ... -debian-9/
Jetzt habe ich die Version Python3 --version 3.6.4
Das upgraden hat leider nichts gebracht, und es ist ein zuzüglicher Error hinzugekommen.

Code: Alles auswählen

Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 110, in inner_run
    autoreload.raise_last_exception()
  File "/usr/local/lib/python3.6/site-packages/django/utils/autoreload.py", line 76, in raise_last_exception
    raise _exception[1]
  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 357, in execute
    autoreload.check_errors(django.setup)()
  File "/usr/local/lib/python3.6/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python3.6/site-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
  File "/usr/local/lib/python3.6/site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/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 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/models.py", line 2, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/base_user.py", line 48, in <module>
    class AbstractBaseUser(models.Model):
  File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 122, in __new__
    new_class.add_to_class('_meta', Options(meta, app_label))
  File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 326, in add_to_class
    value.contribute_to_class(cls, name)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/options.py", line 206, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "/usr/local/lib/python3.6/site-packages/django/db/__init__.py", line 28, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 214, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 14, in <module>
    from sqlite3 import dbapi2 as Database
  File "/usr/local/lib/python3.6/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.6/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
Was ich für das modul schon ausprobiert habe ist : pip3 install sqlite3
Error :

Code: Alles auswählen

ERROR: Could not find a version that satisfies the requirement sqlite3 (from versions: none)
ERROR: No matching distribution found for sqlite3
apt-get install sqlite3

Code: Alles auswählen

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 sqlite3 : Depends: libsqlite3-0 (= 3.16.2-5+deb9u1) but 3.27.2-3~bpo9+1 is to be installed
E: Unable to correct problems, you have held broken packages.
Vielen Dank im voraus ! <3
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum compilierst Du selbst ein Python? Und dann so ein altes und dann noch nicht mal vollständig? Installiere ein aktuelles fertiges Pythonpaket.
Neiqi
User
Beiträge: 26
Registriert: Freitag 18. Oktober 2019, 15:10

Weil er automatisch immer die 3.5 installiert
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Dann nimm ein alternatives Binärepaket weiter miniconda.
Neiqi
User
Beiträge: 26
Registriert: Freitag 18. Oktober 2019, 15:10

Und warum kann man das Problem nicht lösen statt alternativen ?
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Weil es einfacher ist? Um das Problem zu lösen, musst du eben SQLite installieren, Dev-Pakete inklusive, und Python neu bauen. Und dann kommt das nächste Modul, für das du nicht alle Abhängigkeiten installiert hast, und das Spiel geht von vorne los.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Du kannst es schon lösen, indem du alle benötigten Abhängigkeiten von Hand installierst. Das ist halt aufwändig und nicht ganz trivial. Im Moment fehlt dir libsqlite3-dev. Was noch alles fehlt kann man dann bei der nächsten Fehlermeldung sagen.
Neiqi
User
Beiträge: 26
Registriert: Freitag 18. Oktober 2019, 15:10

das kam als ich apt-get install libsqlite3-dev eingegeben habe

Code: Alles auswählen

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libsqlite3-dev : Depends: libsqlite3-0 (= 3.16.2-5+deb9u1) but 3.27.2-3~bpo9+1 is to be installed
E: Unable to correct problems, you have held broken packages.
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Joa. Musst du halt auflösen. Wie man sowas macht hat mit Python nix zu tun, das Debian paketmanagement füllt ja ganz Bücher, dank seiner Komplexität. Ich persönlich arbeite da manchmal mit aptitude weil mir das die Auswahl der Abhängigkeiten erlaubt. Und dann bekomme ich das gelegentlich hingefummelt. Eine simplere Lösung ist ja schon genannt, aber von dir verworfen worden.
nezzcarth
User
Beiträge: 1634
Registriert: Samstag 16. April 2011, 12:47

Neiqi hat geschrieben: Sonntag 16. August 2020, 13:19 Weil er automatisch immer die 3.5 installiert
Das ist eben ein Nebeneffekt von LTS Distributionen. Admins mögen die zwar wegen der Plan- und Berechenbarkeit gerne, aber wenn man aktuelle Software darauf deployen möchte, kann man eben in solche Situationen kommen, wie du jetzt. Davon, Python wie in der verlinkten Anleitung selbst zu kompilieren, würde ich absehen, insb. wenn die Anwendung mit dem Internet in Kontakt kommen soll. Mit der Methode fliegt dein Python 3.6 komplett unter dem Radar am Paketsystem vorbei und bekommt auch keine (Security)-Updates. D.h. du musst dich aktiv selbst darum kümmern, das aktuell zu halten. Daher wäre mein Vorschlag, dass du entweder versuchst, das irgendwie unter dem Python 3.5 von Debian zur Mitarbeit zu bewegen (mit einem aktuellen Django 3.X wird das aber nichts), oder das in einem Container (z.B. mit Docker) laufen zu lassen. Ein Update auf ein neueres Debian wäre auch ein Option, steht aber vmtl. nicht zur Debatte?
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

die IMHO einfachste Alternative ist, Django 2.2 LTS zu nutzen. Das läuft mit Python 3.5 und Django 2.2 LTS hat bis April 2022 Support.

Wenn du unbedingt Django 3.x brauchst und ein für Debian 9 es kein Backports etc. für Python >= 3.6 gibt, dann musst du halt selber bauen. Das ist eigentlich kein Hexenwerk. Diese Anleitung sollte eigentlich auch unter Debian funktionieren. Wie oben schon steht musst du dich dann aber selber im Updates kümmern. Heißt: wenn ein neuer Bugfix-Release raus kommt, solltest du neu kompilieren.

Gruß, noisefloor
Antworten