通过 Devstack 安装 Tacker 时出现 Django 导入错误:没有名为 django.core.management 的模块

通过 Devstack 安装 Tacker 时出现 Django 导入错误:没有名为 django.core.management 的模块

我正在尝试安装塔克通过 Devstack。我正在关注安装指南。我使用与指导。但是,运行 ./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、horizo​​n、tacker-horizo​​n
  发现现有安装:Django 2.2.7
    卸载Django-2.2.7:
      成功卸载Django-2.2.7
  找到现有安装:horizo​​n 17.0.1.dev8
    无法卸载“horizo​​n”。未找到要卸载的文件。
  为 Horizo​​n 运行 setup.py 开发
  找到现有安装:tacker-horizo​​n 0.15.1.dev2
    无法卸载“tacker-horizo​​n”。未找到要卸载的文件。
  为 tacker-horizo​​n 运行 setup.py 开发
成功安装Django-2.0.13 horizo​​n tacker-horizo​​n
您正在使用 pip 版本 9.0.3,但版本 19.3.1 可用。
您应该考虑通过“pip install --upgrade pip”命令进行升级。
回溯(最近一次调用最后一次):
  文件“/opt/stack/tacker-horizo​​n/manage.py”,第 18 行,位于
    从 django.core.management 导入 execute_from_command_line
ImportError:没有名为 django.core.management 的模块
退出时出错
nova-compute:未找到进程
neutron-dhcp-agent:未找到进程
neutron-l3-agent:未找到进程
neutron-metadata-agent:未找到进程
neutron-openvswitch-agent:未找到进程
stack@ubuntu-nfv-1:~/devstack$

我在这里将错误加粗:

文件“/opt/stack/tacker-horizo​​n/manage.py”,第 18 行,来自 django.core.management 导入 execute_from_command_line ImportError:没有名为 django.core.management 的模块退出时出错

我看到之前的警告说考虑通过“pip install --upgrade pip”命令进行升级。我照做了,但仍然看到相同的错误。

每当我尝试重新安装时,我首先运行 ./unstack.sh 和 ./clean.sh 以确保安装环境是干净的。

文件 /opt/stack/tacker-horizo​​n/manage.py 的第一行包括以下内容:

#!/usr/bin/env python

导入操作系统
导入系统

从 django.core.management 导入 execute_from_command_line
..

因此,根据故事这里,manage.py 应该没问题。

我在 VMWare ESXi 中使用 Ubuntu 18.04 虚拟机。

如果有人能就这个问题给我建议,我将非常感激。

答案1

看起来你正在使用不同的 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*

答案2

这就是我解决问题的方法。根据这个答案问题,我在 python 命令行中运行了“from django.core.management import execute_from_command_line”,结果出现了同样的错误。但是当我在 python3 命令行中运行同样的命令时,没有出现任何错误。因此,很明显 python3 的 site-packages 文件夹中有 Django,而 python 没有。因此,我将 /opt/stack/tacker-horizo​​n/manage.py 中的 shebang 行“#!/usr/bin/env python”更改为“#!/usr/bin/env python3”。然后,我在运行 ./unstack.sh 后再次运行 ./stack.sh。现在安装成功了。

相关内容