====== Python ====== **General Information** Administration of Python environments. **Checklist** * Distro(s): Enterprise Linux 6/7 ---- ===== Python Versions ===== ^ OS ^ System Package ^ EPEL ^ Software Collections ^ | CentOS 6.x | 2.6.6 | 3.4 | 2.7, 3.3, 3.4 | | CentOS 7.x | 2.7 | 3.4, 3.6 | 2.7, 3.3, 3.4, 3.5 | * To avoid breaking system packages(ie yum uses python), let system packaged python versions stay maintained by the official repos. * Use EPEL/software collections along with something such as virtualenv to maintain development environments. ---- ====== Python3 Install: EPEL ====== To install python 3.4 from the EPEL * 3.4yum install python34 * 3.6yum install python36 ---- ====== Python3 Install: Software Collections ====== Software Collections allow for environments such as newer Python versions to be installed via repos and not conflict with the default system version. [[linux_wiki:repos#software_collections|See Software Collections Instructions]] ---- ====== Pip ====== Pip is a Python package management tool to install modules. ===== Install Pip ===== Install Pip into a Python environment * Python2wget https://bootstrap.pypa.io/get-pip.py python get-pip.py * Python3wget https://bootstrap.pypa.io/get-pip.py python3.6 get-pip.py \\ Install devel packages that many pip builds rely upon * Python2yum install gcc python-devel * Python3.4yum install gcc python34-devel * Python3.6yum install gcc python36-devel ===== Pip Commands ===== **Python 2 vs Python 3 pip commands** * **Python 2**pip * **Python 3**pip3 \\ List installed python modules pip list \\ Show details about a Python module pip show virtualenv \\ Search for a Python module pip search "query" \\ Install a Python module pip install virtualenv \\ Upgrade a Python module pip install --upgrade scipy \\ Upgrade pip pip install --upgrade pip \\ Uninstall pip uninstall virtualenv ---- ===== Pip Config ===== There is a global config file and per user config file locations. \\ **Global pip config file** - example to format columns for all users/etc/pip.conf [list] format=columns \\ **User pip config file** - for additional config or to over ride the global * Create the pip config directorymkdir ~/.config/pip/ * Create the pip.conf file and populate itvim ~/.config/pip/pip.conf #your config here ---- ====== Python Modules ====== Some commonly installed Python modules. ===== Virtualenv ===== Virtualenv "is a tool to create isolated Python environments." Site: https://virtualenv.pypa.io/en/stable/ * Python2pip install virtualenv * Python3pip3 install virtualenv ---- ===== PipEnv ===== PipEnv "automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from your Pipfile as you install/uninstall packages. It also generates the ever–important Pipfile.lock, which is used to produce deterministic builds." Site: https://github.com/pypa/pipenv * Python2pip install pipenv * Python3pip3 install pipenv ---- ===== AWS CLI ===== AWS CLI "is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts." Site: https://aws.amazon.com/cli/ Pre-Reqsyum install expat-devel Install * Python2pip install awscli * Python3pip3 install awscli Verify * Python2 and Python3aws --version ==== Cert Verify Failed ==== If you are seeing errors while using the aws cli about "SSL: CERTIFICATE_VERIFY_FAILED" * Point the aws cli to the system ca bundle (**per user**)vim ~/.bashrc # AWS CA Bundle export AWS_CA_BUNDLE="/etc/pki/tls/certs/ca-bundle.crt" * Source the filesource ~/.bashrc ----