Python 如何为Ansible选择正确的安装程序?

Python 如何为Ansible选择正确的安装程序?,python,pip,ansible,installation,Python,Pip,Ansible,Installation,当需要安装Ansible时,它们有不同的选项: 让我们想象一下,我有一个安装了更新的新CentOS 7虚拟机。现在,我可以选择使用以下方式安装: 系统的包管理器: Python的包管理器: 或 虚拟环境中的Python包管理器: 通过从存储库克隆源代码实现Git: 考虑到我还不太明白拥有虚拟环境意味着什么 有人能描述一下所列方法之间的实际差异吗 哪一种是安装Ansible的“最佳”方式 在什么情况下,列出的每种方法更合适 谢谢 通常不鼓励通过yum安装python包,除非存在某种本机依赖关系

当需要安装Ansible时,它们有不同的选项:

让我们想象一下,我有一个安装了更新的新CentOS 7虚拟机。现在,我可以选择使用以下方式安装:

  • 系统的包管理器:
  • Python的包管理器:
  • 虚拟环境中的Python包管理器:
  • 通过从存储库克隆源代码实现Git:
  • 考虑到我还不太明白拥有虚拟环境意味着什么

    • 有人能描述一下所列方法之间的实际差异吗
    • 哪一种是安装Ansible的“最佳”方式
    • 在什么情况下,列出的每种方法更合适
    谢谢

  • 通常不鼓励通过
    yum
    安装python包,除非存在某种本机依赖关系。在
    pip
    上使用
    yum
    安装没有任何好处
  • 我们通常建议不要使用全局软件包管理器来安装软件包。我们通常只对真正的全局软件包(pip、wheel、setuptools、云提供商cli、virtualenv)进行例外。我们在设置docker环境时也使用此方法,因为docker仅限于单个应用程序配置。我们通常不使用这种方法,因为依赖操作系统提供的python可能会变化无常。例如,CentOS 6附带了一个非常旧的python版本,无法升级,因此您必须从源代码编译和构建python。如果您有多个应用程序需要从同一台服务器运行,但有不同的python版本要求,则此方法也不起作用
  • 使用虚拟环境几乎总是正确的选择,应该是默认选择。它将您的项目的依赖项与可能位于同一虚拟机或计算机上的其他项目隔离开来。这里的关键词是隔离。您可以隔离特定于特定应用程序的特定版本的库和python,并让它们在同一实例上并行运行
  • 当您需要尚未发布到pypi的特定修补程序或功能时,从git安装pip
  • 通常不鼓励通过
    yum
    安装python包,除非存在某种本机依赖关系。在
    pip
    上使用
    yum
    安装没有任何好处
  • 我们通常建议不要使用全局软件包管理器来安装软件包。我们通常只对真正的全局软件包(pip、wheel、setuptools、云提供商cli、virtualenv)进行例外。我们在设置docker环境时也使用此方法,因为docker仅限于单个应用程序配置。我们通常不使用这种方法,因为依赖操作系统提供的python可能会变化无常。例如,CentOS 6附带了一个非常旧的python版本,无法升级,因此您必须从源代码编译和构建python。如果您有多个应用程序需要从同一台服务器运行,但有不同的python版本要求,则此方法也不起作用
  • 使用虚拟环境几乎总是正确的选择,应该是默认选择。它将您的项目的依赖项与可能位于同一虚拟机或计算机上的其他项目隔离开来。这里的关键词是隔离。您可以隔离特定于特定应用程序的特定版本的库和python,并让它们在同一实例上并行运行
  • 当您需要尚未发布到pypi的特定修补程序或功能时,从git安装pip
    谢谢你,伙计!那么,我会调查维恩的。可惜Ansible文档并没有真正告诉你这一点。谢谢你!那么,我会调查维恩的。可惜Ansible文档并没有真正告诉您这一点。
      $ sudo yum install ansible
    
      $ pip install --user ansible
    
      $ sudo pip install ansible
    
      $ python -m virtualenv ansible
    
      $ source ansible/bin/activate
    
      $ pip install ansible
    
      git clone https://github.com/ansible/ansible.git