在使用stack.sh在Ubuntu中使用devstack的安装过程中,我遇到了**中提到的错误。如果有人想出办法,请分享解决方案。
2016-10-29 16:52:39.981 | File "build/bdist.linux-x86_64/egg/setuptools/command/py36compat.py", line 111, in _add_defaults_data_files
****2016-10-29 16:52:39.982 | TypeError: 'Documentation' object is not iterable****
2016-10-29 16:52:39.983 |
2016-10-29 16:52:39.983 | ----------------------------------------
****2016-10-29 16:52:40.548 | Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-fWegjM/rcssmin/
2016-10-29 16:52:40.974 | +inc/python:pip_install:1 exit_trap****
2016-10-29 16:52:40.977 | +./stack.sh:exit_trap:487 local r=1
2016-10-29 16:52:40.982 | ++./stack.sh:exit_trap:488 jobs -p
2016-10-29 16:52:40.988 | +./stack.sh:exit_trap:488 jobs=
2016-10-29 16:52:40.994 | +./stack.sh:exit_trap:491 [[ -n '' ]]
2016-10-29 16:52:40.997 | +./stack.sh:exit_trap:497 kill_spinner
2016-10-29 16:52:41.006 | +./stack.sh:kill_spinner:383 '[' '!' -z '' ']'
2016-10-29 16:52:41.010 | +./stack.sh:exit_trap:499 [[ 1 -ne 0 ]]
2016-10-29 16:52:41.015 | +./stack.sh:exit_trap:500 echo 'Error on exit'
2016-10-29 16:52:41.015 | Error on exit
2016-10-29 16:52:41.018 | +./stack.sh:exit_trap:501 generate-subunit 1477759430 531 fail
答案 0 :(得分:1)
也可以获得同样的问题。看起来上游出现了问题。
我能够通过在py36compat.py
中注释掉else片段来绕过错误它应该可以帮助你运行stack.sh完成,但我不知道这样做是否明智。
答案 1 :(得分:1)
只想更新所有人,上游问题已得到解决。无需再经历这些步骤。只需更新您的devstack代码库。
答案 2 :(得分:0)
@HassanPasha:谢谢你我的朋友,你的解决方案对我有用。
详细说明: 找到py36compat.py文件,在我的例子中是
sudo vim /usr/local/lib/python2.7/dist-packages/setuptools/command/py36compat.py
向下滚动到ELSE语句(第#111行),注释掉第111行的所有内容 - > #115
保存,退出,。/ unstack.sh,重启,sudo su stack,cd to whatever,./ stack.sh
瞧。
答案 3 :(得分:0)
与DevStack的安装没有完全关联,但在安装另一个python模块时遇到同样的错误我遇到过这个问题:django-compressor。
如上所述,问题在于py36compat.py文件中的#111行,该文件隐藏在/lib/pythonX.X/dist-packages/setuptools/command/目录中的某处。这部分代码:
else:
# a (dirname, filenames) tuple
dirname, filenames = item
for f in filenames:
f = convert_path(f)
if os.path.isfile(f):
self.filelist.append(f)
应该替换为这样的东西:
else:
filenames = item._files
for f in filenames:
f = convert_path(f)
if os.path.isfile(f):
self.filelist.append(f)
很可能很快就会被开发者修复,但也许有人会受益。