代码之家  ›  专栏  ›  技术社区  ›  kramer65

为什么我在使用安装程序安装ansible时找不到它。py?

  •  30
  • kramer65  · 技术社区  · 7 年前

    sudo pip uninstall ansible full output here .

    然后我试着使用它:

    $ ansible --version
    -bash: ansible: command not found
    $ which ansible
    $
    

    /usr/local/lib/python2.7/site-packages 事实上,我在那里发现了一个鸡蛋:

    $ ls -l /usr/local/lib/python2.7/site-packages | grep ansible
    drwxr-xr-x    4 root    admin     136 Aug 22 16:33 ansible-2.4.0-py2.7.egg
    

    当我启动Python并检查site packages文件夹时,我发现了一个不同的文件夹:

    >>> import site; print site.getsitepackages()[0]
    /usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
    

    但这是指向同一文件夹的符号链接:

    $ ls -l /usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
    lrwxr-xr-x  1 hielke  admin  54 Aug 13 22:36 /usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages -> ../../../../../../../../../lib/python2.7/site-packages
    

    所以我想问题是没有在中创建到ansible包的符号链接 /usr/local/bin/ . 但我不确定我怎么能创建这样一个符号链接,为什么它不会出现在第一位。

    有人知道我该如何继续前进吗?欢迎提供所有提示!

    11 回复  |  直到 7 年前
        1
  •  29
  •   rnorris    7 年前

    当您调用 ansible bash将从shell中搜索 $PATH .egg 文件本身不是可执行文件,它只是用于分发代码的文件。

    如果ansible安装正确,您应该可以使用 locate ansible-connection , ansible-console ,等等。在您找到 ansible公司 在这样的终端中:

    export PATH=$PATH:/path/to/ansible
    

    /path/to/ansible 是找到可执行文件的目录。此更改为 变量是临时的,当您关闭shell时,它将消失。如果现在可以从bash运行ansible,那么可以通过将导出添加到 $HOME/.bash_profile 文件,或通过在中添加规则 /etc/paths.d (苹果推荐)。查看有关如何准确执行这些操作的更多信息 here 如果你不熟悉他们。

    ansible公司

    git clone https://github.com/ansible/ansible.git
    cd ansible
    virtualenv venv
    source venv/bin/activate
    pip install .
    which ansible
    

    在撰写本文时,以上内容为我提供了一个工作机会 安装

        2
  •  20
  •   swimmer    3 年前

    对于那些使用Windows 10 Ubuntu终端的用户,运行这个命令应该可以解决这个问题:

    export PATH=$PATH:~/.local/bin
    
        3
  •  16
  •   ZF007 anurag    5 年前

    /Users/<yourusername>/Library/Python/3.7/bin /Users/<yourusername>/Library/Python/2.7/bin . 然后

    export PATH=$PATH:/Users/<yourusername>/Library/Python/3.7/bin
    

    您可以将其存储在 .bashrc

        4
  •  5
  •   caopeng    4 年前

    嗯,我认为你只需要创建一个软链接

    ln -s /Users/${yourname}/Library/Python/${python version}/bin/ansible /usr/local/bin/ansible

        5
  •  3
  •   SharadTalekar    2 年前
    pip3 install ansible --user
    

    安装在~/。地方的只要把这个包含在PATH中,它就会起作用 export PATH="$PATH:~/.local/bin"

        6
  •  1
  •   user1028    4 年前

    $ python -m virtualenv ansible 
    $ source ansible/bin/activate
    $ pip install ansible 
    
        7
  •  1
  •   Dario Rusignuolo    3 年前

    我遇到了同样的问题,在安装后使用 pip3 install ansible

        8
  •  0
  •   taleinat    7 年前

    我建议卸载Ansible并使用 pip 根据 the method suggested in the Ansible docs :

    或者,如果您正在寻找最新的开发版本:

    pip install git+https://github.com/ansible/ansible.git@devel

    如果您正在OS X Mavericks上安装,您可能会遇到编译器发出的一些噪音。解决方法是执行以下操作:

    $ sudo CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install ansible

    使用virtualenv的读者也可以在virtualenv下安装Ansible,不过我们建议不要担心,只需在全球范围内安装Ansible即可。不要使用easy_install直接安装ansible。

        9
  •  0
  •   Alberto Rojas    4 年前

    /Users/arojas/.zshrc 我添加了这一行,这是Python安装Ansible的地方

    export PATH="$PATH:$HOME/Library/Python/3.7/bin"
    
        10
  •  -1
  •   Vince    3 年前
          system/instance used: ec2 RH8, as root
          # pip3 install ansible           (not recommended - should be by a user) 
          # ansible --version              ( not found - wtf?!)
          # yum install mlocate
          # update
          # locate ansible                 (long output; scroll to where you input command)
          # export PATH=$PATH:/usr/local/bin     
          # ansible --version               (success, Yes!)
    
        11
  •  -1
  •   user11420865 user11420865    3 年前
      system/instance used: ec2 RH8, as root
      # pip3 install ansible           (not recommended - should be by a user) 
      # ansible --version              ( not found - :( )
      # yum install mlocate
      # updatedb (updatedb creates or updates a database used by locate)
      # locate ansible (TL;DR)
      # export PATH=$PATH:/usr/local/bin (Add this line to .bashrc)
      # source .bashrc (To reflect the changes in the bash)  
      # ansible --version               (success, Yes!)