Install Python 3.x on CentOS 7

Remove old Python 3.4 (If you had it installed because of older instructions)

$ yum remove python34*
$ yum autoremove

Install needed repositories:

$ yum install epel-release
$ yum install https://centos7.iuscommunity.org/ius-release.rpm

Install Python 3.6 and tools

$ yum install python36u python36u-devel python36u-pip
$ pip3.6 install -U pip
$ pip install -U virtualenv
$ rm -f /usr/bin/python3 && ln -s /usr/bin/python3.6 /usr/bin/python3

Установка пакетного менеджера pip. В штатном режиме доступа в интернет или при работе через HTTP/HTTPS прокси установку рекомендуется производить через:

easy_install-3.6 pip

По-умолчанию у python нет поддержки sock-прокси, так что если выход в интернет происходит через sock, то все попытки будут приводить к ошибке "[Errno 101] Network is unreachable" или "Missing dependencies for SOCKS support."

 Способ установки через sock

1) Необходимо установить pip через пакетный менеджер yum:

yum install python36-pip

2) Далее необходимо вручную загрузить пакет PySocks с помощью curl (wget не поддерживает работу через socks):

curl https://files.pythonhosted.org/packages/53/12/6bf1d764f128636cef7408e8156b7235b150ea31650d0260969215bb8e7d/PySocks-1.6.8.tar.gz --output PySocks.tar.gz
tar -zxf PySocks.tar.gz ; cd PySocks-1.6.8/
python3 setup.py install

3) Еcли всё прошло успешно, то в выводе pip3 list должен появиться модуль PySocks:

# pip3 list
pip (8.1.2)
PySocks (1.6.8)
setuptools (39.2.0)

Если используется sock прокси, то для python в некоторых случаях указание протокола должно производится без "h" в конце, т.е. просто "sock5://"

4) После этого pip готов к работе через socks прокси и можно попробовать произвести обновление пакета pip:

pip3 install --upgrade pip --proxy="socks5://<PROXY_ADDR>"

5) Если далее при активации виртуального окружения модуль PySocks не работает, то необходимо скопировать файлы модуля в виртуальное окружение:

cp -r /usr/lib64/python3.6/socket.py <VIRT_PATH>/lib/python3.6/
cp -r /usr/lib64/python3.6/socketserver.py <VIRT_PATH>/lib/python3.6/
 

Comments powered by CComment