Изучите это, больше не бойтесь установки среды Python (CentOS 6 Python2.7 и Python3.7)

Python

Зачем брать этот процесс установки в качестве примера, потому что основная версия Linux, разработанная и развернутая сейчас, — это CentOS, а версия, которую в настоящее время использует большинство людей, —CentOS Linux release 7.x
В систему интегрирована версия Python 2.7 и pip, если нет, то можно установить через yum. а такжеCentOS 6Он поставляется с Python 2.6.6 и без пункта. Для большинства текущих проектов Python с открытым исходным кодом требуется Python 2.7 и выше, поэтому, если компьютер, на котором вы хотите развернуть проект, — CentOS 6, вам необходимо обновить версию Python и установить pip. Вроде так, но в процессе выполнения будет много проблем.Далее я объясню вам это пошагово, чтобы вы могли понять установку мультиокружения Python от корня.

Никаких других требований, просто хочу установить pip

Для установки pip обычно используются два метода: установка yum и установка исходного пакета.Вы также можете найти много полезного контента непосредственно в поиске Baidu. Вот два метода

centos7

Если на вашем компьютере нет pip, вы можете выполнить следующую команду

yum -y install python-pip

Если установка не удалась, следуйте инструкциям для решения соответствующей проблемы.Некоторым людям может потребоваться сначала установить epel-release.

yum -y install epel-release
yum -y install python-pip

centos6

cd /opt/
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

tar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install

Последний метод (не для всех)

Этот метод также описан в официальной документации, но он не будет работать для некоторых операционных систем и версий Python.
официальная документация по пипу

# 下载安装脚本
cd /opt/
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# 运行安装脚本
python get-pip.py

Уведомление: Какая версия Python используется для запуска скрипта установки, с какой версией pip связан

 python3 get-pip.py    # 运行安装脚本。pip关联到了python3
 python2 get-pip.py    # 运行安装脚本。pip关联到了python2

Сосуществование нескольких версий установки Python

Перед прочтением следующего рекомендуется посмотреть ==>Только когда вы поймете виртуальную среду, вы сможете по-настоящему освоить среду Python.

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

Было сказано раньше,centos6Индивидуально по умолчаниюPython2.6версию, затем установите ее напрямуюPython2.7версия для демонстрации. Вы спрашиваете меня, почему я не прихожу прямоPython3.7+, нет причин, просто хочу что-то сделать (потому что проект компании не поддерживает python3 и должен быть python2.7 или выше, последующие обновления до 3.7) Нечего сказать, посмотрите на следующую команду:

# step 1
cd /opt/
wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2 #下载python 版本包
tar -jxvf Python-2.7.3.tar.bz2 # 解压文件
# step 2
cd Python-2.7.3  # 进入文件夹
# 检查安装平台属性,系统是否有编译时所需要额库,以及库的版本是否满足编译需要
./configure 
make all &&  make install && make clean && make distclean  # 编译安装及清理
# step 3
mv /usr/bin/python /usr/bin/python2.6.6  # 移动备份原Python 指令
ln -s /usr/local/bin/python2.7 /usr/bin/python #设置Python bin命令的软连接指向 

Введите в это времяPython -V, будет показан следующий результат

[root@alpha-silvergrd-107-13 Python-2.7.3]# python -V
Python 2.7.3

Однако, поскольку я написал статью после того, как сначала потренировался, я не выполнил некоторые команды.Для удобства демонстрации позже я расскажу о ситуации на моей машине.На шаге 3 я выполнил следующее:
ln -s /usr/local/bin/python2.7 /usr/bin/python2.7, все мои эффекты показаны на рисунке

Это место нуждается в моем объяснении? Вы можете просто спросить своих коллег или Baidu, поэтому я не буду вдаваться в подробности.

Уведомление

Если предыдущее содержимое заголовка было выполнено первым#просто хочу установить pip, то ты в беде, если нет, то ты не в большой беде! !

Сначала установите пип

Поскольку вы уже устанавливали pip, а в вашей системе на тот момент была версия Python 2.6, pip связан с Python 2.6. В настоящее время, если вы используете эту командуpython2.7 -m pip install scrapy, будет сообщено о следующей ошибке, это связано с тем, что Python2.7 не имеет соответствующего пункта, связанного с ним


а такжеpython -m pip install scrapyне будет

cd /opt/
cd pip-9.0.1
python2.7 setup.py install # pip关联到Python2.7上

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

pip не установлен, теперь хочу установить pip

cd /opt/
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

tar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
# 2者选其一,看情况
python2.7 setup.py install(python setup.py install)

как использовать

Теперь, когда установлено несколько версий Python и pip, как мне использовать их для загрузки пакета?
Вот пример установки скрапинга

python2.7 -m pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
# or
python -m pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple

# python2.7: 使用的语言版本
# -m: 将模块当作脚本运行
# -i:使用镜像源

Как решить различные ошибки

Поскольку это не статья, написанная во время работы, на самом деле я столкнулся с большим количеством ошибок в процессе реализации, но я действительно не помню, на каких этапах эти ошибки произошли. Здесь все разбито на категории, если вы столкнетесь с ними. , можно решить напрямую, у centos6 много проблем, у centos7 не будет столько проблем.
здесь сcentos6Например, потому что есть много проблем.

No module named setuptools

wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
python2.7 ez_setup.py --insecure

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available

В процессе ./configure, если не добавлен параметр --with-ssl, недоступны связанные с ssl функции установленного по умолчанию ПО, бывает, что процессу pip требуется модуль ssl, а так как он не указан , эта функция недоступна.

Решение состоит в том, чтобы перекомпилировать и установить python2.7.3 и использовать следующий процесс для компиляции и установки:

# 查看openssl安装包,发现缺少openssl-devel包
rpm -aq|grep openssl-devel
# yum安装openssl-devel 
yum install openssl-devel -y 
# 查看安装结果 
rpm -aq|grep openssl 
# 重新对python2.7进行编译安装,用一下过程来实现编译安装
cd /opt/Python2.7.3
./configure --with-ssl #添加ssl选项
make all &&  make install && make clean && make distclean

No module named _sqlite3

yum install sqlite-devel
cd /opt/Python2.7.3
./configure
make all &&  make install && make clean && make distclean

ням недоступен

vi /usr/bin/yum

Первая строка содержания в начале#!/usr/bin/pythonиспользуемый python, если ваша версия python изменилась, то естьpython -VНе исходный контент, вам нужно изменить этот контент на исходный контент python, например

mv /usr/bin/python /usr/bin/python999

Так#!/usr/bin/pythonбыть измененным на#!/usr/bin/python999. Конечно, вы также можете заменить содержимое исходного файла yum, которое соответствует текущей версии python, но это не рекомендуется (беда)

(Не рекомендуется) случай, когда yum недоступен (/lib64/libc.so.6:версия GLIBC_2.14)

Ссылаться на:/lib64/libc.so.6: версия `GLIBC_2.14' не найдена в Linux/Centos
Однако делать это не рекомендуется. Изменения на системном уровне относительно велики. Если это рабочий сервер, оценить риск сложно.

(рекомендуется), когда yum недоступен (нет модуля с именем yum)

Обычно эту ситуацию можно исправить следующим образом, заново скачать оригинальный пакет системы для установки и ремонта

# 下载对应操作系统rpm包
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/python-2.6.6-66.el6_8.x86_64.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/python-devel-2.6.6-66.el6_8.x86_64.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/python-libs-2.6.6-66.el6_8.x86_64.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/python-pycurl-7.19.0-9.el6.x86_64.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/python-setuptools-0.6.10-4.el6_9.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/rpm-python-4.8.0-59.el6.x86_64.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-utils-1.1.30-41.el6.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-plugin-protectbase-1.1.30-41.el6.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-plugin-aliases-1.1.30-41.el6.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-utils-1.1.30-41.el6.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-utils-1.1.30-41.el6.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-utils-1.1.30-41.el6.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-utils-1.1.30-41.el6.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wget http://mirrors.ustc.edu.cn/centos/6.10/os/x86_64/Packages/yum-utils-1.1.30-41.el6.noarch.rpm

# 安装(依赖报错的话缺什么下什么)
rpm -Uvh --replacepkgs rpm-python*.rpm
rpm -Uvh --replacepkgs yum*.rpm
# or
rpm -Uvh --replacepkgs yum*.rpm –force --nodeps

No module named zlib

yum install zlib
# 重新编译Python
./configure --with-zlib
make all &&  make install && make clean && make distclean

pip is a package and cannot be directly executed

pip install -U pip
pip install -U setuptools
pip install wheel

Суммировать

Часть содержимого не объясняется подробно, а часть забыта. Возможно, у всех разные проблемы. Я выбрал ту, с которой возникло наибольшее количество проблем. Две версии Python 2.6 и Python 2.7 сосуществовали выше. На этой основе добавление другие версии Python — это снова та же операция, повторяющая операцию по очереди. Единственное, что изменилось, это загрузка пакета.

Тогда если у вас возникнут вопросы, вы можете оставить комментарий внизу, я отвечу на них по очереди, и, кстати, еще вспомню, что забыл в процессе.

На самом деле, venv и conda тоже можно использовать для решения подобных задач, но я не хочу полагаться на сторонние инструменты, поэтому не изучал их, и в будущем добавлю статьи на эту тему.

Обратите внимание, не потеряйтесь

Статья постоянно обновляется каждую неделю, вы можете найти «Десять минут на изучение программирования» на WeChat, чтобы прочитать и обновить ее как можно скорее.Если эта статья хорошо написана, если вы чувствуете, что есть что-то, чего можно желать ~ ставьте лайк 👍 подписывайтесь ❤️ поделитесь ❤️
Ваша поддержка и признание — самая большая мотивация для моего творчества, увидимся в следующей статье!