Virtualenv является определенно удачей здесь.
В моей установке у меня есть переменная среды VIRTUALENV_USE_DISTRIBUTE
набор к 1, так, чтобы более современные Распределили пакет, используется вместо setuptools. Я создал виртуальные среды для двух версий Python в моей системе как так:
$ virtualenv -p python2.6 py2
$ virtualenv -p python3.2 py3
Я затем создал три псевдонима в .bashrc
:
alias py2='source $HOME/py2/bin/activate'
alias py3='source $HOME/py3/bin/activate'
alias idle='python -m idlelib.idle'
Таким образом я могу использовать py2
переключаться на значение по умолчанию Python 2.6 и py3
переключаться на значение по умолчанию Python 3.2. Ввод idle
будет работать, какой бы ни версия НЕАКТИВНЫХ подходит для виртуальной среды, в которой я нахожусь.
Установка пакетов в одну из этих виртуальных сред обычно просто включает a pip install
команда.
Это может быть сделано с помощью замены команды, как так:
mvn -Dvar_name="$(cat /path/to/file)" # POSIX
mvn -Dvar_name="$(</path/to/file)" # bash
Это имеет известный протест, тем не менее, а именно, что разделяются все запаздывающие новые строки. Если это не имеет значения, тем не менее, затем, что это должно работать.
Если Вы действительно просто хотите считать одну строку, Вы могли бы использовать read
вместо этого, как так:
IFS= read -r line < /path/to/file
mvn -Dvar_name="$line"
Для замены команды необходимо использовать $()
или обратные галочки ''.
Также важно, чтобы Вы заключили замену в кавычки, или это расширится в несколько аргументов, если файл будет содержать больше чем одно слово. Вот некоторые примеры:
mvn -Dvar_name="$(< /path/to/file)" # bash
mvn -Dvar_name="$(cat /path/to/file)" # POSIX