2016-08-04 7 views
0
のpython 3.5.2

Ansible - :解決として

でansible(バージョン> 2)を実行しようとしているときに

がエラーの下に、これを取得し、「NameError名 『urllib2の』が定義されていない」私はそれをterming githubの問題に見てきましたしかし、何が行われる必要があるかを分類することはできません。 https://github.com/ansible/ansible/issues/16013

解決方法

[email protected]:~/ansible-spike> ansible all -m ping -vvv 
    Using /home/virtual/ansible-spike/ansible.cfg as config file 
    ERROR! Unexpected Exception: name 'urllib2' is not defined 
    the full traceback was: 

    Traceback (most recent call last): 
     File "/home/virtual/.pyenv/versions/3.5.2/bin/ansible", line 92, in <module> 
     exit_code = cli.run() 
     File "/home/virtual/.pyenv/versions/3.5.2/lib/python3.5/site-packages/ansible/cli/adhoc.py", line 193, in run 
     result = self._tqm.run(play) 
     File "/home/virtual/.pyenv/versions/3.5.2/lib/python3.5/site-packages/ansible/executor/task_queue_manager.py", line 202, in run 
     self.load_callbacks() 
     File "/home/virtual/.pyenv/versions/3.5.2/lib/python3.5/site-packages/ansible/executor/task_queue_manager.py", line 171, in load_callbacks 
     for callback_plugin in callback_loader.all(class_only=True): 
     File "/home/virtual/.pyenv/versions/3.5.2/lib/python3.5/site-packages/ansible/plugins/__init__.py", line 368, in all 
     self._module_cache[path] = self._load_module_source(name, path) 
     File "/home/virtual/.pyenv/versions/3.5.2/lib/python3.5/site-packages/ansible/plugins/__init__.py", line 319, in _load_module_source 
     module = imp.load_source(name, path, module_file) 
     File "/home/virtual/.pyenv/versions/3.5.2/lib/python3.5/imp.py", line 172, in load_source 
     module = _load(spec) 
     File "<frozen importlib._bootstrap>", line 693, in _load 
     File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
     File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
     File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
     File "/home/virtual/.pyenv/versions/3.5.2/lib/python3.5/site-packages/ansible/plugins/callback/hipchat.py", line 32, in <module> 
     from ansible.module_utils.urls import open_url 
     File "/home/virtual/.pyenv/versions/3.5.2/lib/python3.5/site-packages/ansible/module_utils/urls.py", line 330, in <module> 
     if hasattr(httplib, 'HTTPSConnection') and hasattr(urllib2, 'HTTPSHandler'): 
    NameError: name 'urllib2' is not defined 

答えて

1

ansible python APIはPython 3をサポートしていません。PyPIページには、2.6と2.7のみが記載されています。だから、

+0

、私はpyenvにpython2.7.9に切り替え、 'pyenv:ansible:コマンドが ansibleコマンドは、これらのPythonのバージョンに存在していません:だから 3.5.2 '、私はansibleをインストールする必要があります2.7.9未満 –

+0

@VigneshParamasivam:あなたは、誰かをインストールする必要があります。あなたのpyenv環境に入り、 'pip install ansible'を実行してください。 – mhawke

+0

はい、それを実行することができます、ありがとう! –

4

Urllib2はPython v2に固有のものです。 http://docs.python.org/library/urllib2.html

urllib2のドキュメント:

The urllib2 module has been split across several modules in Python 3.0 named urllib.request and urllib.error.

私はAnsibleはまだPythonの3と互換性があるとは思いません。

0

現在、Python3で実行することはできません。これはリンクされたGithub Issueでも述べられています。

関連する問題