2017-09-20 7 views
0

新しいクラウドサーバ(Ubuntu 16.04)にデフォルトの3.5リリースの代わりにPython 3.6をインストールしました。サーバーを再起動した後、起動時にcloud-initを実行できず、syslogに次のエラーがあります。Python 3.6にアップグレードした後、起動時にクラウド初期化を開始できません

Sep 20 16:16:14 cloud-init[1310]: Traceback (most recent call last): 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/bin/cloud-init", line 9, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  load_entry_point('cloud-init==0.7.9', 'console_scripts', 'cloud-init')() 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 570, in load_entry_point 
Sep 20 16:16:14 cloud-init[1310]:  return get_distribution(dist).load_entry_point(group, name) 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 2751, in load_entry_point 
Sep 20 16:16:14 cloud-init[1310]:  return ep.load() 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 2405, in load 
Sep 20 16:16:14 cloud-init[1310]:  return self.resolve() 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 2411, in resolve 
Sep 20 16:16:14 cloud-init[1310]:  module = __import__(self.module_name, fromlist=['__name__'], level=0) 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 27, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  from cloudinit import stages 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 21, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  from cloudinit.handlers import cloud_config as cc_part 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/cloudinit/handlers/cloud_config.py", line 11, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  import jsonpatch 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/jsonpatch.py", line 114, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  json.load = get_loadjson() 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/jsonpatch.py", line 108, in get_loadjson 
Sep 20 16:16:14 cloud-init[1310]:  argspec = inspect.getargspec(json.load) 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3.6/inspect.py", line 1072, in getargspec 
Sep 20 16:16:14 cloud-init[1310]:  raise ValueError("Function has keyword-only parameters or annotations" 
Sep 20 16:16:14 cloud-init[1310]: ValueError: Function has keyword-only parameters or annotations, use getfullargspec() API which can support them 
Sep 20 16:16:14 cloud-init[1310]: Error in sys.excepthook: 
Sep 20 16:16:14 cloud-init[1310]: Traceback (most recent call last): 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook 
Sep 20 16:16:14 cloud-init[1310]:  from apport.fileutils import likely_packaged, get_recent_crashes 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  from apport.report import Report 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  import apport.fileutils 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  from apport.packaging_impl import impl as packaging 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  import apt 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  import apt_pkg 
Sep 20 16:16:14 cloud-init[1310]: ModuleNotFoundError: No module named 'apt_pkg' 
Sep 20 16:16:14 cloud-init[1310]: Original exception was: 
Sep 20 16:16:14 cloud-init[1310]: Traceback (most recent call last): 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/bin/cloud-init", line 9, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  load_entry_point('cloud-init==0.7.9', 'console_scripts', 'cloud-init')() 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 570, in load_entry_point 
Sep 20 16:16:14 cloud-init[1310]:  return get_distribution(dist).load_entry_point(group, name) 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 2751, in load_entry_point 
Sep 20 16:16:14 cloud-init[1310]:  return ep.load() 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 2405, in load 
Sep 20 16:16:14 cloud-init[1310]:  return self.resolve() 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 2411, in resolve 
Sep 20 16:16:14 cloud-init[1310]:  module = __import__(self.module_name, fromlist=['__name__'], level=0) 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 27, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  from cloudinit import stages 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 21, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  from cloudinit.handlers import cloud_config as cc_part 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/cloudinit/handlers/cloud_config.py", line 11, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  import jsonpatch 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/jsonpatch.py", line 114, in <module> 
Sep 20 16:16:14 cloud-init[1310]:  json.load = get_loadjson() 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3/dist-packages/jsonpatch.py", line 108, in get_loadjson 
Sep 20 16:16:14 cloud-init[1310]:  argspec = inspect.getargspec(json.load) 
Sep 20 16:16:14 cloud-init[1310]: File "/usr/lib/python3.6/inspect.py", line 1072, in getargspec 
Sep 20 16:16:14 cloud-init[1310]:  raise ValueError("Function has keyword-only parameters or annotations" 
Sep 20 16:16:14 cloud-init[1310]: ValueError: Function has keyword-only parameters or annotations, use getfullargspec() API which can support them 
Sep 20 16:16:14 systemd[1]: Started MySQL Community Server. 
Sep 20 16:16:14 systemd[1]: cloud-config.service: Main process exited, code=exited, status=1/FAILURE 
Sep 20 16:16:14 systemd[1]: Failed to start Apply the settings specified in cloud-config. 
Sep 20 16:16:14 systemd[1]: cloud-config.service: Unit entered failed state. 
Sep 20 16:16:14 systemd[1]: cloud-config.service: Failed with result 'exit-code'. 

そこには明らかに2つの問題ました:

ModuleNotFoundError: No module named 'apt_pkg' 

ValueError: Function has keyword-only parameters or annotations, use getfullargspec() API which can support them 

だから私はapt-get install python3-aptを走ったが、パッケージが既にインストールされました。その後、私はapt-get install python3-jsonpatchを実行し、正常に完了しました。残念ながら、この問題は修正されていません。

答えて

1

最後に、jsonpatchパッケージをpipにアップグレードしてこの問題を解決しました。

$ pip3 install --upgrade jsonpatch 

これでjsonpatchの古いバージョンでの既知のバグ(互換性の問題)(https://github.com/stefankoegl/python-json-patch/issues/56を参照してください)。 apt-getではなく、pipでパッケージをアップグレードする必要があります。これにより、2つのエラーを修正できます。

関連する問題