我如何告诉 bash 使用 /usr/local/bin/python3 而不是 /usr/bin/python3?
How do I tell bash to use /usr/local/bin/python3 instead of /usr/bin/python3?
我用 perl 脚本运行执行以下命令:
/bin/bash -c 'TASKRC=/Users/me/.taskrc /usr/local/bin/task add \'the task\''
当命令行中的 perl 脚本 运行 时,该脚本工作正常。该命令在库 tasklib
中执行一些 python 代码,以将任务插入到 TaskWarrior 数据库中。
但是,当 perl 脚本由应用程序 Karabiner Elements 间接执行时,出现错误。
当 perl 脚本 运行 独立时,一些调试语句揭示了这一点:
Python version: 3.9.9
Python bin: /usr/local/bin/python3
但是,当 Karabiner 执行 perl 脚本时,我看到:
Python version: 3.8.9
Python bin: /usr/bin/python3
所以正在使用 tasklib
的旧 3.8 版本。我需要以某种方式告诉 bash 使用 python 的 3.9.9 版本,以便它可以找到 /usr/local/lib/python3.9/site-packages
中更新的 tasklib
库。我该怎么做?
也许
/bin/bash -c 'PATH=/usr/local/bin:$PATH; TASKRC=/Users/me/.taskrc task add "the task"'
我用 perl 脚本运行执行以下命令:
/bin/bash -c 'TASKRC=/Users/me/.taskrc /usr/local/bin/task add \'the task\''
当命令行中的 perl 脚本 运行 时,该脚本工作正常。该命令在库 tasklib
中执行一些 python 代码,以将任务插入到 TaskWarrior 数据库中。
但是,当 perl 脚本由应用程序 Karabiner Elements 间接执行时,出现错误。
当 perl 脚本 运行 独立时,一些调试语句揭示了这一点:
Python version: 3.9.9
Python bin: /usr/local/bin/python3
但是,当 Karabiner 执行 perl 脚本时,我看到:
Python version: 3.8.9
Python bin: /usr/bin/python3
所以正在使用 tasklib
的旧 3.8 版本。我需要以某种方式告诉 bash 使用 python 的 3.9.9 版本,以便它可以找到 /usr/local/lib/python3.9/site-packages
中更新的 tasklib
库。我该怎么做?
也许
/bin/bash -c 'PATH=/usr/local/bin:$PATH; TASKRC=/Users/me/.taskrc task add "the task"'