заставить `pip` использовать не-по умолчанию python3.7

Я знаю, что это вопрос, аналогичный тому, который уже задавался много раз, но я до сих пор не могу найти надежное решение. У меня на Ubuntu 16.04 установлено много версий python, от 2.7 до последней 3.7.4.

По умолчанию используется значение 2.7. Я знаю, что не должен менять настройки по умолчанию, потому что другие сделали это, и это привело к таким серьезным проблемам, как сбои системы. Однако я должен установить программное обеспечение через pip:

pip install damn_software

, для которого требуется python> = 3.6

:~$ pip install damn_software
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support

Collecting damn_software
Using cached https://files.pythonhosted.org/packages/cc/19/632db1d5095a35b08ba000d63e1ceffaf56c730dbd259f021e1fb7a75f68/damn_software-0.1.8.tar.gz
ERROR: Command errored out with exit status 1:
 command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-qDPgIM/damn_software/setup.py'"'"'; __file__='"'"'/tmp/pip-install-qDPgIM/damn_software/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
     cwd: /tmp/pip-install-qDPgIM/damn_software/
Complete output (1 lines):
ERROR: Python (3, 5) or later is required by software-helpers for damn_software
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Я не знаю, как это обойти? Может быть, символическая ссылка?

РЕДАКТИРОВАТЬ : Мне пришлось выполнить следующие дополнительные команды, прежде чем установка прошла:

python3.7 -m pip install --user --upgrade pip
python3.7 -m pip install your_packages
sudo apt install python3.7-dev 
2
задан 5 August 2019 в 19:03

2 ответа

Просто выполните интерпретатор Python версии, с которой Вы хотите, pip как модуль для выполнения, как:

python3.6 -m pip install some_package

Тем путем можно быть на 100% уверены интерпретатор, который Вы запускаете, Ваши сценарии с совпадает с, для которого Вы управляете пакетами зернышка. Никакие системные необходимые модификации.

pip исполняемый файл точно не определяется, чтобы быть любой исправленной версией так или иначе, независимо от того, что обновления затем, вероятно, переопределили бы его снова. Плюс он иногда повреждается по другим причинам как несовместимости версии так или иначе. Я обычно не использовал бы его непосредственно вообще, кроме, возможно, для того, когда Вы находитесь в venv (виртуальная среда Python), где это точно определяется, каково это.

3
ответ дан 2 December 2019 в 01:52

установите pip3

sudo apt-get install python3-pip

затем добавьте эту строку к ~/.bashrc (или эквивалентный)

alias pip=pip3

получите bashrc

source ~/.bashrc

теперь можно сделать

pip install damn_software

Это будет использовать python3 в качестве значения по умолчанию

альтернативно можно использовать conda или venv для установки зернышка

2
ответ дан 2 December 2019 в 01:52

Другие вопросы по тегам:

Похожие вопросы: