Wie: django_manage in ansible mit Python3

9

Ich befolge dies für das Modul django manage.py Ссылка

für z.B. eine meiner Aufgaben sieht wie -

aus %Vor%

das funktioniert perfekt mit python2 (Standard in ubuntu), aber wenn ich es mit python3-django project versuche, löst es den Fehler

aus %Vor%

von diesem Fehler scheint es, dass Ansible standardmäßig Python2 verwendet. Können wir dies in Python3 oder eine andere Problemumgehung ändern?

PS: pip freeze stelle sicher, dass django 1.8 installiert ist (für python3 mit pip3)

Vorschläge: Wenn ich ubuntu@ubuntu:/srv/myproj$ python3 manage.py migrate starte, funktioniert es einwandfrei. also denke ich daran, den Befehl direkt zu übergeben etwas wie

%Vor%

Aber wie gebe ich den Pfad des Projektpfads oder des manage.py-Files weiter, gibt es nur eine Option zum Übergeben von Einstellungen, etwa --settings=myproject.settings.main .

können wir tun, indem wir direkten Befehl übergeben?

    
micheal 19.05.2015, 13:11
quelle

3 Antworten

3

Von der Ansible-Website Ссылка

  

Python 3 ist eine etwas andere Sprache als Python 2 und die meisten Python-Programme (einschließlich Ansible) wechseln noch nicht. Bei einigen Linux-Distributionen (Gentoo, Arch) ist jedoch möglicherweise kein Python 2.X-Interpreter installiert. Auf diesen Systemen sollten Sie eines installieren und die Variable 'ansible_python_interpreter' im Inventar (siehe Inventar) so einstellen, dass sie auf Ihr 2.X Python zeigt. Bei Distributionen wie Red Hat Enterprise Linux, CentOS, Fedora und Ubuntu ist standardmäßig ein 2.X-Interpreter installiert, was für diese Distributionen nicht gilt. Dies gilt auch für fast alle Unix-Systeme. Wenn Sie diese fernen Systeme durch die Installation von Python 2.X booten müssen, können Sie das 'rohe' Modul auch remote verwenden.

    
dzejdzej 19.05.2015 13:17
quelle
1

Ansible verwendet python , um den Befehl django auszuführen: Ссылка

Ihre einzige Lösung ist also, die ausführbare Datei zu überschreiben, zum Beispiel indem Sie Ihren PATH ändern:

%Vor%     
Régis B. 20.05.2015 11:34
quelle
0

Wenn Sie den Shebang in der Django manage.py-Datei als #!/usr/bin/env python3 bearbeiten, können Sie sicherstellen, dass python 3 immer zum Ausführen Ihrer Django-App verwendet wird.

Erfolgreich mit Ansible 2.3.0 und Django 1.10.5 versucht. YMMV

    
PMack 23.02.2017 01:27
quelle