我正在为每个代码库运行ansible的自定义版本,需要使用python3运行它。(在MacOS上(
为此,我运行
source env.rc
在我运行ansible剧本之前,在每个代码库中。它包含:
#!/bin/sh
source ~/src/ansible/hacking/env-setup &> /dev/null
alias ansible-playbook='python3 $(which ansible-playbook)'
alias ansible-vault='python3 $(which ansible-vault)'
这在bash中运行得很好,但由于我按照MacOS的建议切换到了zsh,它失败了,出现了一种自引用循环:
ansible git:(master) ✗ ansible-playbook webserver.yml -u root --tags rebuildcard
'/usr/local/bin/python3: can't open file '/Users/jd/projects/meezy/ansible/ansible-playbook:': [Errno 2] No such file or directory
设置此别名的最佳方法是什么?或者,如果不是,为什么它在bash中有效,但在zsh 中无效
正如@chepner所指出的,使用https://github.com/pyenv/pyenv#homebrew-在macos中管理您的python版本,通常使用签入git的.python-version
文件。
如果你不想探索这一点,分享~/src/ansible/hacking/env-setup
可能会带来更简洁的帮助。