Sto seguendo questo per Django modulo manage.py http://docs.ansible.com/django_manage_module.htmlCome: django_manage in ansible con python3
per esempio uno dei miei compiti sembra -
- name: Django migrate
django_manage: command=migrate
app_path={{app_path}}
settings={{django_settings}}
tags:
- django
questo funziona perfettamente bene con python2 (impostazione predefinita in Ubuntu), ma quando provo con il progetto python3-django getta errore
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
da questo errore sembra Ansible bydefault utilizza Python2. possiamo cambiarlo in python3 o in qualsiasi altra soluzione?
PS: pip freeze garantire che Django 1.8 ha installato (per python3 usando PIP3)
Suggerimenti: quando lo eseguo [email protected]:/srv/myproj$ python3 manage.py migrate
funziona benissimo. così sto pensando di comando passando direttamente qualcosa come
- name: Django migrate
command: python3 manage.py migrate
tags:
- django
ma come faccio a passare il percorso del progetto o il percorso del file manage.py, c'è solo la possibilità di passare le impostazioni, qualcosa come --settings=myproject.settings.main
.
possiamo fare passando il comando diretto?
Se si utilizza un ambiente virtuale, l'uso del parametro 'virtualenv' si spera possa utilizzare l'interprete Python 3 nell'ambiente virtuale. – Alasdair
@Alasdair: No! Non sto usando virtualenv. tutto è a livello di sistema. 'sudo pip3 installa' – micheal
Sì, l'avevo intuito quando ho visto 'pip3' nella tua domanda, ma ho deciso di lasciare comunque il commento perché potrebbe aiutare qualcun altro. Spero che tu trovi una soluzione. – Alasdair