User Tools

Site Tools


python3
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Previous revision
Next revision
python3 [2018/10/05 23:03] – [Modules] dblume
Line 1: Line 1:
 +====== Python3 ======
  
 +If I want Python 3.7, I have to compile it myself.  Use "dnf" for RedHat based distros and "apt-get" for Debian.
 +
 +===== RedHat based distros =====
 +
 +<code bash>
 +sudo dnf install readline-devel  # or up-arrow won't navigate history
 +sudo dnf install sqlite-devel openssl-devel bzip2-devel
 +sudo dnf install xz-devel
 +</code>
 +
 +Then on Fedora and CentOS...
 +
 +<code bash>
 +wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
 +tar -xvf Python-3.7.0.tgz
 +cd Python-3.7.0/
 +./configure --prefix=/usr/local/bin/python3.7 --enable-optimizations
 +make
 +sudo make install
 +# sudo ln -s /usr/local/bin/python3.7/bin/python3 /usr/bin/python3
 +</code>
 +
 +On my dev system at work, I seem to have configured a prefix like /opt/python3. Then when CentOS updates itself, it changes a symbolic link in /usr/bin/python3
 +
 +    sudo rm /usr/bin/python3 && sudo ln -s /opt/python3/bin/python3 /usr/bin/python3
 +
 +For **OS X**, brew upgrading httpie seems to upgrade to the latest Python 3, so I didn't have to do stuff.
 +
 +===== Debian based distros =====
 +
 +For Debian (eg., Rasbian) try [[http://www.unixmen.com/howto-install-python-3-x-in-ubuntu-debian-fedora-centos/|the following]] (on raspberry pi libssl-dev isn't available):
 +
 +<code bash>
 +sudo apt-get install build-essential libncursesw5-dev libreadline-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev libffi-dev
 +</code>
 +
 +<code>
 +The necessary bits to build these optional modules were not found:
 +_bz2                  _lzma                 _ssl
 +</code>
 +
 +On Raspbian, I put it in the default location:
 +
 +<code bash>
 +cd Python-3.7.0/
 +./configure --enable-optimizations
 +make -j4
 +sudo make install
 +</code>
 +
 +===== Modules =====
 +
 +Sometimes I have trouble with pip3 (ImportError: cannot import name 'main' from 'pip'), so prefer to use "python 3 -m pip" instead.
 +
 +<code bash>
 +sudo -H python3 -m pip install --upgrade pip
 +sudo -H python3 -m pip install requests
 +sudo -H python3 -m pip install numpy
 +sudo -H python3 -m pip install matplotlib
 +python3 -m pip install --user --upgrade httpie
 +</code>
 +
 +===== Weird hack for impyla =====
 +
 +Refers to https://stackoverflow.com/questions/43918993/python-buildpack-fatal-error-sasl-sasl-h-no-such-file-or-directory
 +
 +<code bash>
 +sudo python3 -m pip install --no-deps impyla
 +sudo python3 -m pip install --no-deps git+https://github.com/snowch/thrift_sasl
 +# sudo python3 -m pip install thriftpy
 +</code>
python3.txt · Last modified: 2023/04/14 20:37 by dblume