• Aasible中cryptography兼容性报错解决办法


    Aasible中cryptography兼容性报错解决办法

    1 Ansible中使用ansible --version查看版本,报错信息如下:

    ERROR! Unexpected Exception, this is probably a bug: (cryptography 0.8.2 (/usr/lib64/python2.7/site-packages), Requirement.parse('cryptography>=1.1'))
    the full traceback was:
    
    Traceback (most recent call last):
      File "/usr/bin/ansible", line 97, in <module>
        mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass)
      File "/usr/lib/python2.7/site-packages/ansible/cli/__init__.py", line 38, in <module>
        from ansible.inventory.manager import InventoryManager
      File "/usr/lib/python2.7/site-packages/ansible/inventory/manager.py", line 33, in <module>
        from ansible.plugins.loader import inventory_loader
      File "/usr/lib/python2.7/site-packages/ansible/plugins/loader.py", line 22, in <module>
        from ansible.parsing.utils.yaml import from_yaml
      File "/usr/lib/python2.7/site-packages/ansible/parsing/utils/yaml.py", line 17, in <module>
        from ansible.parsing.yaml.loader import AnsibleLoader
      File "/usr/lib/python2.7/site-packages/ansible/parsing/yaml/loader.py", line 30, in <module>
        from ansible.parsing.yaml.constructor import AnsibleConstructor
      File "/usr/lib/python2.7/site-packages/ansible/parsing/yaml/constructor.py", line 29, in <module>
        from ansible.parsing.vault import VaultLib
      File "/usr/lib/python2.7/site-packages/ansible/parsing/vault/__init__.py", line 45, in <module>
        from cryptography.hazmat.backends import default_backend
      File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 7, in <module>
        import pkg_resources
      File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 3011, in <module>
        parse_requirements(__requires__), Environment()
      File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 630, in resolve
        raise VersionConflict(dist,req) # XXX put more info here
    VersionConflict: (cryptography 0.8.2 (/usr/lib64/python2.7/site-packages), Requirement.parse('cryptography>=1.1'))

    2 分析报错原因:

    最后一句Requirement.parse('cryptography>=1.1')),得知cryptography的版本过低,需要升级,安装cryptography需要通过pip安装,所以需要先安装pip。

    3 pip安装

    下载:wget https://files.pythonhosted.org/packages/69/81/52b68d0a4de760a2f1979b0931ba7889202f302072cc7a0d614211bc7579/pip-18.0.tar.gz
    解压:tar -zxvf pip-18.0.tar.gz
    进入目录:cd pip-18.0
    安装:python setup.py install

    4 安装wheel

    下载:wget https://files.pythonhosted.org/packages/2a/fb/aefe5d5dbc3f4fe1e815bcdb05cbaab19744d201bbc9b59cfa06ec7fc789/wheel-0.31.1.tar.gz
    解压:tar -zxvf wheel-0.31.1.tar.gz
    进入目录:cd wheel-0.31.1/
    安装:python setup.py install

    5 安装cryptography

    下载:wget https://files.pythonhosted.org/packages/87/e6/915a482dbfef98bbdce6be1e31825f591fc67038d4ee09864c1d2c3db371/cryptography-2.3.1-cp27-cp27mu-manylinux1_x86_64.whl
    安装:pip install cryptography-2.3.1-cp27-cp27mu-manylinux1_x86_64.whl

    6. 测试是否还有问题

    [root@123]# ansible --version
    ansible 2.6.1
      config file = /etc/ansible/ansible.cfg
      configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
      ansible python module location = /usr/lib/python2.7/site-packages/ansible
      executable location = /usr/bin/ansible
      python version = 2.7.5 (default, Nov 20 2015, 02:00:19) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]
  • 相关阅读:
    SpringBoot SpringSession redis 共享 SESSION
    SpringBoot application.yml logback.xml,多环境配置,支持 java -jar --spring.profiles.active
    SpringBoot CGLIB AOP解决Spring事务,对象调用自己方法事务失效.
    SpringBoot整合Mybatis,多数据源,事务,支持java -jar 启动.
    SpringBoot整合SpringSecurity,SESSION 并发管理,同账号只允许登录一次
    SpringBoot idea maven打包war
    动态添加数据源,根据用户登录切换数据库.编程式Spring事务.
    MYSQL,触发器,实现两个表共用ID不重复
    试着简单易懂记录synchronized this object Class的区别,模拟ConcurrentHashMap
    Enum枚举写的一个简单状态机
  • 原文地址:https://www.cnblogs.com/heyongboke/p/9679169.html
Copyright © 2020-2023  润新知