Записать сценарий оболочки оболочки. Если у вас есть script.py
, напишите script.py.sh
со следующим содержимым:
#!/bin/bash
PYTHON_SCRIPT=$( echo "$0" | sed -e 's/\.sh$//' )
exec $MY_PYTHON_PATH $PYTHON_SCRIPT "$@"
Отказ от ответственности: это не проверено, просто написано это с моей головы.
Теперь просто настройте MY_PYTHON_PATH на каждом компьютере и вызовите script.py.sh
вместо script.py
.
Резюме Это решение является только вторым, поскольку оно требует много вызовов сценариев, которые должны быть изменены с script.py
на script.py.sh
, чего следует избегать, если это вообще возможно.
Используйте env
для вызова сценарий python-finder, который просто вызывает двоичный код python, содержащийся в $MY_PYTHON_PATH
. Скрипт python-finder должен находиться в одном месте на обеих машинах, при необходимости использовать символические ссылки.
#!/usr/bin/env /usr/local/bin/python-finder.sh
Содержимое python-finder.sh:
#!/bin/bash
exec $MY_PYTHON_PATH "$@"
Это работает, потому что для сценариев интерпретатора (те, которые начинаются с shebang) execve вызывает интерпретатор и передает имя файла в env, которое, в свою очередь, передает его команде, которую она вызывает.