Ich verfolge diese für django manage.py Modul http://docs.ansible.com/django_manage_module.htmlWie: django_manage in ansible mit Python3
für z.B. eine meiner Aufgaben sieht aus wie -
- name: Django migrate
django_manage: command=migrate
app_path={{app_path}}
settings={{django_settings}}
tags:
- django
dies mit python2 perfekt funktioniert gut (Standard in Ubuntu), aber wenn ich mit python3-django Projekt versuchen, wirft es Fehler
failed: [123.456.200.000] => (item=school) => {"cmd": "python manage.py makemigrations --noinput school --settings=myproj.settings.production", "failed": true, "item": "school", "path": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games", "state": "absent", "syspath": ["/home/ubuntu/.ansible/tmp/ansible-tmp-1432039779.41-30449122707918", "/usr/lib/python2.7", "/usr/lib/python2.7/plat-x86_64-linux-gnu", "/usr/lib/python2.7/lib-tk", "/usr/lib/python2.7/lib-old", "/usr/lib/python2.7/lib-dynload", "/usr/local/lib/python2.7/dist-packages", "/usr/lib/python2.7/dist-packages"]}
msg:
:stderr: Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
aus diesem Fehler es ansible scheint Standardmäßig verwendet Python2. können wir dies zu python3 oder einer anderen Problemumgehung ändern?
PS: pip freeze dass django gewährleisten 1,8 hat (für python3 mit PIP3) installiert
Vorschläge: wenn ich [email protected]:/srv/myproj$ python3 manage.py migrate
laufen es funktioniert gut. so ich denke an vorbei Befehl direkt so etwas wie
- name: Django migrate
command: python3 manage.py migrate
tags:
- django
aber wie gehe ich den Projektpfad oder manage.py Dateipfad gibt es nur eine Option, Einstellungen zu übergeben, so etwas wie --settings=myproject.settings.main
.
können wir tun, indem wir direkten Befehl übergeben?
Wenn Sie eine virtuelle Umgebung verwenden, wird der Parameter "virtualenv" hoffentlich den Python 3-Interpreter in der virtuellen Umgebung verwenden. – Alasdair
@Alasdair: Nein! Ich benutze nicht virtualenv. alles ist systemweit. 'sudo pip3 install' –
micheal
Ja, ich hatte das erraten, als ich 'pip3' in deiner Frage gesehen habe, aber entschieden habe, den Kommentar trotzdem zu hinterlassen, weil es jemand anderem helfen könnte. Ich hoffe, Sie haben eine Lösung gefunden. – Alasdair