kra*_*r65 5 python macos installation pip setup.py
因为我在使用Ansible(我在Mac上)时遇到了一些麻烦,而该问题似乎已在最新的开发人员版本中修复,所以我通过pip(sudo pip uninstall ansible)卸载了ansible,并使用经典的setup.py方法从github存储库中重新安装了最新的开发人员版本,这似乎成功结束了(这里全部输出)。
因此,我尝试使用它:
$ ansible --version
-bash: ansible: command not found
$ which ansible
$
Run Code Online (Sandbox Code Playgroud)
我检查了它的安装位置。从上面链接的完整输出中,我发现它已安装在中/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
Run Code Online (Sandbox Code Playgroud)
当我启动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
Run Code Online (Sandbox Code Playgroud)
但这是指向同一文件夹的符号链接:
$ 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
Run Code Online (Sandbox Code Playgroud)
所以我想问题是在中没有创建与ansible包的符号链接/usr/local/bin/。但是我不确定如何创建这样的符号链接,以及为什么它不会首先出现。
有人知道我可以从这里前进吗?欢迎所有提示!
rno*_*ris 25
当您ansible从 shell调用时,bash 将在您$PATH的文件中搜索名为 ansible 的可执行文件。这可能不是唯一的问题,但这是您看到的错误的直接原因。该.egg文件本身不是可执行文件,它只是用于分发代码的文件。
如果 ansible 已正确安装,您应该能够使用locate或 OSX Finder GUI找到它。名称应该完全匹配,没有文件扩展名。您可能还会在找到可执行文件的同一位置找到ansible-connection、ansible-console等ansible。如果你找到了,太好了!测试一下并将该目录添加到您$PATH的终端中,如下所示:
export PATH=$PATH:/path/to/ansible
Run Code Online (Sandbox Code Playgroud)
哪里/path/to/ansible是哪里找到的可执行文件的目录。对$PATH变量的这种更改是暂时的,并且会在您关闭 shell 时消失。如果您现在可以从 bash 运行 ansible,那么您可以通过将该导出添加到$HOME/.bash_profile文件末尾或添加规则/etc/paths.d(Apple 推荐)来使更改永久化。如果您不熟悉它们,请在此处详细了解如何执行这些操作。
现在,如果这不是问题并且您找不到ansible可执行文件,那么安装本身就是您的问题。您也可以尝试使用虚拟环境(如果已安装)以确保您从 github 中提取的版本没有损坏:
git clone https://github.com/ansible/ansible.git
cd ansible
virtualenv venv
source venv/bin/activate
pip install .
which ansible
Run Code Online (Sandbox Code Playgroud)
在撰写本文时,上述内容为我提供了一个有效的ansible安装。
小智 16
查找 ansible 在 Mac 上的位置。大多数时候它的/Users/<yourusername>/Library/Python/3.7/bin
or /Users/<yourusername>/Library/Python/2.7/bin。然后 ...
export PATH=$PATH:/Users/<yourusername>/Library/Python/3.7/bin
Run Code Online (Sandbox Code Playgroud)
您可以将其存储在您的.bashrc文件中。
swi*_*mer 10
对于使用 Windows 10 Ubuntu 终端的用户,运行此命令应该可以解决问题:
export PATH=$PATH:~/.local/bin
Run Code Online (Sandbox Code Playgroud)
好吧,我认为你只需要创建一个软链接
ln -s /Users/${yourname}/Library/Python/${python version}/bin/ansible /usr/local/bin/ansible
小智 5
pip3 install ansible --user
Run Code Online (Sandbox Code Playgroud)
这安装在 ~/.local 中。只需将其包含在 PATH 中即可,例如:export PATH="$PATH:~/.local/bin"