Назад | Перейти на главную страницу

Ошибка импорта Django при установке Tacker через Devstack: нет модуля с именем django.core.management

Я пытаюсь установить Такер через Devstack. Я слежу этот инструкция по установке. Я использую тот же local.conf, что и в руководство. Однако после запуска ./stack.sh я вижу эту ошибку:

Requirement already satisfied: pyperclip===1.7.0 in /usr/local/lib/python3.6/dist-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 453))
Requirement already satisfied: wcwidth===0.1.7 in /usr/local/lib/python3.6/dist-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 694))
Requirement already satisfied: zipp===0.6.0 in /usr/local/lib/python3.6/dist-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 716))
Requirement already satisfied: pycparser===2.19 in /usr/local/lib/python3.6/dist-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 438))
Requirement already satisfied: more-itertools===7.2.0 in /usr/local/lib/python3.6/dist-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 311))
Installing collected packages: Django, horizon, tacker-horizon
  Found existing installation: Django 2.2.7
    Uninstalling Django-2.2.7:
      Successfully uninstalled Django-2.2.7
  Found existing installation: horizon 17.0.1.dev8
    Can't uninstall 'horizon'. No files were found to uninstall.
  Running setup.py develop for horizon
  Found existing installation: tacker-horizon 0.15.1.dev2
    Can't uninstall 'tacker-horizon'. No files were found to uninstall.
  Running setup.py develop for tacker-horizon
Successfully installed Django-2.0.13 horizon tacker-horizon
You are using pip version 9.0.3, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Traceback (most recent call last):
  File "/opt/stack/tacker-horizon/manage.py", line 18, in 
    from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
Error on exit
nova-compute: no process found
neutron-dhcp-agent: no process found
neutron-l3-agent: no process found
neutron-metadata-agent: no process found
neutron-openvswitch-agent: no process found
stack@ubuntu-nfv-1:~/devstack$ 

Я выделю здесь ошибку более жирным шрифтом:

Файл "/opt/stack/tacker-horizon/manage.py", строка 18, из django.core.management import execute_from_command_line ImportError: Нет модуля с именем django.core.management Ошибка при выходе

Я вижу предупреждение, прежде чем говорится, что подумайте об обновлении с помощью команды pip install --upgrade pip. Я сделал это, но все еще вижу ту же ошибку.

Каждый раз, когда я пытаюсь переустановить, я сначала запускаю ./unstack.sh и ./clean.sh, чтобы убедиться, что среда чистая для установки.

Первые строки файла /opt/stack/tacker-horizon/manage.py включают следующее:

#!/usr/bin/env python

import os
import sys

from django.core.management import execute_from_command_line
..

Таким образом, согласно рассказу Вот, manage.py должно быть в порядке.

Я использую виртуальную машину Ubuntu 18.04 в VMWare ESXi.

Если кто-нибудь может посоветовать мне по этому поводу, буду очень признателен.

Похоже, вы используете другой дистрибутив Python. Убедитесь, что вы используете python3, и django также установлен в дистрибутиве py3.

dk@dk-VirtualBox:~/$ ll /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16  2018 /usr/bin/python -> python2.7*
dk@dk-VirtualBox:~/$ cd /usr/bin/
dk@dk-VirtualBox:/usr/bin$ sudo rm python
dk@dk-VirtualBox:/usr/bin$ sudo ln -s python3.6 python
dk@dk-VirtualBox:/usr/bin$ ll /usr/bin/python
lrwxrwxrwx 1 root root 9 Jan  3 18:40 /usr/bin/python -> python3.6*

Вот как я решил проблему. Согласно ответу в этом вопрос, Я запустил "from django.core.management import execute_from_command_line" в командной строке python и увидел ту же ошибку. Но когда я запускаю то же самое в командной строке python3, ошибки не возникает. Таким образом, очевидно, что у python3 есть Django в папке site-packages, а у python нет. Поэтому я изменил строку shebang «#! / Usr / bin / env python» в /opt/stack/tacker-horizon/manage.py на «#! / Usr / bin / env python3». Затем, запустив ./unstack.sh, я снова запустил ./stack.sh. Теперь установка прошла успешно.