通過 Devstack 安裝 Tacker 時出現 Django 導入錯誤:沒有名為 django.core.management 的模組
我正在嘗試通過 Devstack安裝Tacker 。我正在遵循此安裝指南。我使用與指南中相同的 local.conf 。但是,在執行 ./stack.sh 之後,我看到了這個錯誤:
已滿足要求:/usr/local/lib/python3.6/dist-packages 中的 pyperclip===1.7.0(來自 -c /opt/stack/requirements/upper-constraints.txt(第 453 行)) 已滿足要求:/usr/local/lib/python3.6/dist-packages 中的 wcwidth===0.1.7(來自 -c /opt/stack/requirements/upper-constraints.txt(第 694 行)) 已滿足要求:/usr/local/lib/python3.6/dist-packages 中的 zipp===0.6.0(來自 -c /opt/stack/requirements/upper-constraints.txt(第 716 行)) 已滿足要求:/usr/local/lib/python3.6/dist-packages 中的 pycparser===2.19(來自 -c /opt/stack/requirements/upper-constraints.txt(第 438 行)) 已滿足要求:/usr/local/lib/python3.6/dist-packages 中的 more-itertools===7.2.0(來自 -c /opt/stack/requirements/upper-constraints.txt(第 311 行)) 安裝收集的包:Django、horizon、tacker-horizon 找到現有安裝:Django 2.2.7 解除安裝 Django-2.2.7: 成功解除安裝 Django-2.2.7 找到現有安裝:horizon 17.0.1.dev8 無法解除安裝“地平線”。找不到要解除安裝的文件。 執行 setup.py develop for Horizon 找到現有安裝:tacker-horizon 0.15.1.dev2 無法解除安裝“tacker-horizon”。找不到要解除安裝的文件。 為 tacker-horizon 執行 setup.py develop 成功安裝 Django-2.0.13 地平線 tacker-horizon 您使用的是 pip 版本 9.0.3,但版本 19.3.1 可用。 您應該考慮通過“pip install --upgrade pip”命令進行升級。 回溯(最近一次通話最後): 文件“/opt/stack/tacker-horizon/manage.py”,第 18 行,在 從 django.core.management 導入 execute_from_command_line ImportError:沒有名為 django.core.management 的模組 退出時出錯 nova-compute:未找到程序 neutron-dhcp-agent:找不到程序 neutron-l3-agent:找不到程序 中子元數據代理:未找到程序 neutron-openvswitch-agent:找不到程序 堆棧@ubuntu-nfv-1:~/devstack $
我在這裡使錯誤更加大膽:
文件“/opt/stack/tacker-horizon/manage.py”,第 18 行,從 django.core.management import execute_from_command_line ImportError: No module named django.core.management 退出時出錯
我之前看到警告說考慮通過“pip install –upgrade pip”命令進行升級。我這樣做了,但我仍然看到同樣的錯誤。
每當我嘗試重新安裝時,我首先執行 ./unstack.sh 和 ./clean.sh 以確保安裝環境乾淨。
文件 /opt/stack/tacker-horizon/manage.py 的第一行包括以下內容:
# !/usr/bin/env python 導入它們 導入系統 從 django.core.management 導入 execute_from_command_line ..
因此,根據這裡的故事,manage.py 應該沒問題。
我在 VMWare ESXi 中使用 Ubuntu 18.04 虛擬機。
如果有人能就這個問題給我建議,我將不勝感激。
這就是我解決問題的方法。根據這個問題的答案,我在 python 命令行中執行了“from django.core.management import execute_from_command_line”,我看到了同樣的錯誤。但是當我在 python3 命令行中執行相同的東西時,沒有給出錯誤。因此,很明顯 python3 在其站點封包件夾中確實有 Django,但 python 沒有。因此,我將 /opt/stack/tacker-horizon/manage.py 中的 shebang 行“#!/usr/bin/env python”更改為“#!/usr/bin/env python3”。然後,我在執行./unstack.sh 之後,又執行了./stack.sh。現在安裝成功了。
看來您正在使用您正在使用不同的 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*