[[Python3]]
 

Differences

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

Link to this comparison view

python3 [2018/10/02 10:30]
dblume
python3 [2018/10/06 08:03] (current)
dblume [Modules]
Line 29: Line 29:
 For **OS X**, brew upgrading httpie seems to upgrade to the latest Python 3, so I didn't have to do stuff. 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 =====+===== Debian based distros (Start) =====
  
 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): 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):
Line 36: Line 36:
 sudo apt-get install build-essential libncursesw5-dev libreadline-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev libffi-dev sudo apt-get install build-essential libncursesw5-dev libreadline-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev libffi-dev
 </code> </code>
 +
 +==== (Aside) OpenSSL 1.0.1 issue in Raspbian ====
 +
 +On Raspbian Jessie the make command (below) may have output that looks like this:
  
 <code> <code>
Line 42: Line 46:
 </code> </code>
  
-On Raspbian, I put it in the default location:+On Raspbian, the pip module may not work because it relies on the ssl module. 
 + 
 +<code> 
 +pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 
 +</code> 
 + 
 +Python's setup.py explains: 
 + 
 +> Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host(). 
 + 
 +If you check the version of ssh: 
 + 
 +<code> 
 +$ openssl version 
 +OpenSSL 1.0.1t  3 May 2016 
 +</code> 
 + 
 +That OpenSSL is too old. So you may have to [[https://raspberrypi.stackexchange.com/questions/66782/how-to-install-openssl-1-0-2-on-raspberry-pi3/67045|make your own OpenSSL library]]. 
 + 
 +<code bash> 
 +# Add the backport apt source. 
 +echo "deb-src http://httpredir.debian.org/debian jessie-backports main contrib non-free" | \ 
 +      sudo tee /etc/apt/sources.list.d/jessie-backports.list 
 +sudo apt update 
 + 
 +# Get the openssl source 
 +apt-get source openssl/jessie-backports 
 + 
 +# Make and install it. 
 +cd openssl-1.0.2k/ 
 +./config --prefix=/usr 
 +make 
 +make test 
 +sudo make install 
 +</code> 
 + 
 +**Update**: The following apt-cache policy command showed the old libssl was still installed. It's probably bad, but I [[https://my-take-on.tk/2018/09/10/installing-latest-python-3x-and-pip-on-any-debian-based-system/|installed the new one with apt install -t jessie-backports]]. 
 + 
 +<code> 
 +sudo apt-cache policy libssl-dev 
 +</code> 
 + 
 +===== Debian based distros (Continued) ===== 
 + 
 +Then, back to Python3, on Raspbian, I put it in the default location, /usr/local:
  
 <code bash> <code bash>
 +screen  # Because using optimizations will take hours
 cd Python-3.7.0/ cd Python-3.7.0/
 ./configure --enable-optimizations ./configure --enable-optimizations
 make -j4 make -j4
 sudo make install sudo make install
 +[[ $TERM != "screen" ]] || exit  # exit if in screen session
 </code> </code>
  
 ===== Modules ===== ===== Modules =====
  
-Sometimes I have trouble with pip3 (ImportError: cannot import name 'main' from 'pip'), so prefer to use "python 3 -m pip" instead.+Sometimes I have trouble with pip3 (ImportError: cannot import name 'main' from 'pip'), so prefer to use "python3 -m pip" instead.
  
 <code bash> <code bash>
-sudo python3 -m pip install --upgrade pip +sudo -H python3 -m pip install --upgrade pip 
-sudo python3 -m pip install requests +sudo -H python3 -m pip install requests 
-sudo python3 -m pip install numpy  # Efficient arrays; scipy for algorithms+sudo -H python3 -m pip install numpy 
 +sudo -H python3 -m pip install matplotlib
 python3 -m pip install --user --upgrade httpie python3 -m pip install --user --upgrade httpie
 </code> </code>
python3.1538501431.txt.gz · Last modified: 2018/10/02 10:30 by dblume
 
Recent changes RSS feed Driven by DokuWiki