Как мне вести блог инженера моей компании?

Записать сценарий оболочки оболочки. Если у вас есть 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, которое, в свою очередь, передает его команде, которую она вызывает.

0
задан K.K.D 25 February 2019 в 05:51
поделиться