Зачем брать этот процесс установки в качестве примера, потому что основная версия 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, чтобы прочитать и обновить ее как можно скорее.Если эта статья хорошо написана, если вы чувствуете, что есть что-то, чего можно желать ~ ставьте лайк 👍 подписывайтесь ❤️ поделитесь ❤️
Ваша поддержка и признание — самая большая мотивация для моего творчества, увидимся в следующей статье!