Могу ли я в скрипте bash обновить пакет source .bash_profile и использовать обновленный пакет?

#bash

#bash

Вопрос:

В Ubuntu 9.10 у меня есть скрипт bash, который устанавливает различные библиотеки Python с использованием pip . Pip устанавливается ранее с помощью apt-get install python-pip , но при этом устанавливается старая версия pip , и мне нужна более новая версия, поддерживающая эту --use-mirrors опцию. Следующие команды

 pip install --upgrade pip
source ~/.bash_profile # also tried source ~/.bashrc and source /etc/profile
pip install --use-mirrors MySQL-python
  

сбой с этой ошибкой, когда я помещаю их в свой скрипт bash:

 Usage: /usr/bin/pip install [OPTIONS] PACKAGE_NAMES...
/usr/bin/pip install: error: no such option: --use-mirrors
  

Могу ли я заставить pip install --use-mirrors MySQL-python команду видеть и использовать новую версию pip , которую я обновляю до двух строк ранее?

Редактировать: мой файл .bash_profile содержит:

 PATH=$PATH:$HOME/bin

export PATH
unset USERNAME
  

Ответ №1:

Мы не можем сказать вам, что будет делать этот код, если вы не покажете нам файл, который вы используете. Что вы ожидаете от вашего bash_profile для вас?

Вам нужно выяснить, где устанавливается обновленная версия pip, и какой у вас путь установлен до и после получения вашей конфигурации bash. Попробуйте разбрызгивать такие вещи, как echo $PATH и which pip в стратегических точках вашего скрипта:

 pip install --upgrade pip
echo $PATH
which pip
source ~/.bash_profile # also tried source ~/.bashrc and source /etc/profile
echo $PATH
which pip
pip install --use-mirrors MySQL-python
  

Надеюсь, это даст вам подсказку о том, что происходит не так.

Ответ №2:

Добавление echo $PATH и which pip по совету Райана показало, что более ранняя версия pip из apt-get устанавливалась /usr/bin , в то время как устанавливался обновленный pip /usr/local/bin , который не был на ПУТИ, который экспортировался в .bash_profile или .bashrc . Мне нужно было добавить /usr/local/bin в PATH:

 pip install --upgrade pip
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
pip install --use-mirrors MySQL-python