18 March 2017: Install and try out Spreads on a Mac Mini

From Noisebridge
Jump to: navigation, search

Install Spreads on a Mac Mini running macOS Sierra 10.12.3[edit]

  • Clone spreads to /Users/hdpe/build/spreads
<syntaxhighlight lang="bash">$ git clone https://github.com/DIYBookScanner/spreads</syntaxhighlight>

Dependency installation[edit]

  • Per README.rst -which, written for Linux, I transformed to a mix of Homebrew and package installations from official sources (MacPorts is much better for non-web stack development situations, like this one)

1. Install the system dependencies: (ORIGINAL) <syntaxhighlight lang="bash">$ sudo apt-get install python2.7-dev python-pip build-essential pkg-config libffi-dev libturbojpeg-dev libmagickwand-dev python-cffi</syntaxhighlight>

(WHAT WORKED ON OS X)

  • python2.7-dev (apparently included as part of macOS python 2.7 standard build)
  • python-pip (installed via instructions here, to avoid the two-pythons problem
<syntaxhighlight lang="bash">

$ sudo python get-pip.py Password: Collecting pip

 Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
   100% |████████████████████████████████| 1.3MB 605kB/s

Collecting wheel

 Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
   100% |████████████████████████████████| 71kB 4.8MB/s

Installing collected packages: pip, wheel

Successfully installed pip-9.0.1 wheel-0.29.0</syntaxhighlight>
  • build-essential (not needed on darwin, it's for Debian pkgs)
  • pkg-config and libffi-dev: followed libffi directions here, with warnings (ignoring for now)-
<syntaxhighlight lang="bash">

$ brew install pkg-config libffi Warning: pkg-config-0.29.1_2 already installed Warning: libffi is a keg-only and another version is linked to opt. Use `brew install --force` if you want to install this version

</syntaxhighlight>
  • python-cffi
<syntaxhighlight lang="bash">

$ sudo pip install cffi Collecting cffi

 Downloading cffi-1.9.1-cp27-cp27m-macosx_10_10_intel.whl (214kB)
   100% |████████████████████████████████| 215kB 1.8MB/s

Collecting pycparser (from cffi)

 Downloading pycparser-2.17.tar.gz (231kB)
   100% |████████████████████████████████| 235kB 2.1MB/s

Installing collected packages: pycparser, cffi

 Running setup.py install for pycparser ... done

Successfully installed cffi-1.9.1 pycparser-2.17

</syntaxhighlight>
<syntaxhighlight lang="bash">

$ brew install imagemagick --disable-openmp --build-from-source Updating Homebrew... ==> Installing dependencies for imagemagick: xz, libpng ==> Installing imagemagick dependency: xz ==> Downloading https://homebrew.bintray.com/bottles/xz-5.2.3.sierra.bottle.tar.gz

                                                                                                                                                1. 100.0%

==> Pouring xz-5.2.3.sierra.bottle.tar.gz 🍺 /usr/local/Cellar/xz/5.2.3: 92 files, 1.4MB ==> Installing imagemagick dependency: libpng ==> Downloading https://homebrew.bintray.com/bottles/libpng-1.6.29.sierra.bottle.tar.gz

                                                                                                                                                1. 100.0%

==> Pouring libpng-1.6.29.sierra.bottle.tar.gz 🍺 /usr/local/Cellar/libpng/1.6.29: 26 files, 1.2MB Warning: imagemagick: this formula has no --disable-openmp option so it will be ignored! ==> Installing imagemagick ==> Using the sandbox ==> Downloading https://dl.bintray.com/homebrew/mirror/imagemagick-7.0.5-3.tar.xz

                                                                                                                                                1. 100.0%

==> ./configure --disable-osx-universal-binary --prefix=/usr/local/Cellar/imagemagick/7.0.5-3 --disable-silent-rules --enable-shared --enable-static --with-modules --disable-opencl --disable-openmp --without-web ==> make install 🍺 /usr/local/Cellar/imagemagick/7.0.5-3: 1,522 files, 22.6MB, built in 10 minutes 9 seconds

</syntaxhighlight>

2. If you want to use a CHDK device: (SKIPPED FOR NOW: Canon EOS devices require libgphoto2, apparently?)

3. If you want to use a libgphoto2-supported device: <syntaxhighlight lang="bash"> sudo apt-get install libgphoto2-dev sudo pip install gphoto2-cffi</syntaxhighlight>

  • libgphoto2: assumed it's already installed, because I seen 'um out thar (locate libgphoto2|wc -l => 291)
  • gphoto2-cffi: installed via pip
<syntaxhighlight lang="bash">

$ sudo pip install gphoto2-cffi Password: The directory '/Users/hdpe/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/Users/hdpe/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting gphoto2-cffi

 Downloading gphoto2-cffi-0.3.tar.gz

Requirement already satisfied: cffi>=1.4 in /Library/Python/2.7/site-packages (from gphoto2-cffi) Collecting enum34>=1.0.3 (from gphoto2-cffi)

 Downloading enum34-1.1.6-py2-none-any.whl

Requirement already satisfied: pycparser in /Library/Python/2.7/site-packages (from cffi>=1.4->gphoto2-cffi) Installing collected packages: enum34, gphoto2-cffi

 Running setup.py install for gphoto2-cffi ... done

Successfully installed enum34-1.1.6 gphoto2-cffi-0.3

</syntaxhighlight>

4. Install Python dependencies:

  • sudo pip install jpegtran-cffi Flask requests zipstream tornado Wand
<syntaxhighlight lang="bash">

$ sudo pip install jpegtran-cffi Flask requests zipstream tornado Wand # Had a failure on first install; ran it again, no problems Password: The directory '/Users/hdpe/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/Users/hdpe/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting jpegtran-cffi

 Downloading jpegtran-cffi-0.5.2.tar.gz (138kB)
   100% |████████████████████████████████| 143kB 1.9MB/s

Collecting Flask

 Downloading Flask-0.12-py2.py3-none-any.whl (82kB)
   100% |████████████████████████████████| 92kB 2.2MB/s

Collecting requests

 Downloading requests-2.13.0-py2.py3-none-any.whl (584kB)
   100% |████████████████████████████████| 593kB 1.1MB/s

Collecting zipstream

 Downloading zipstream-1.1.4.tar.gz

Collecting tornado

 Downloading tornado-4.4.2.tar.gz (460kB)
   100% |████████████████████████████████| 460kB 1.5MB/s

Collecting Wand

 Downloading Wand-0.4.4-py2-none-any.whl (71kB)
   100% |████████████████████████████████| 81kB 5.0MB/s

Requirement already satisfied: cffi>=0.8 in /Library/Python/2.7/site-packages (from jpegtran-cffi) Collecting itsdangerous>=0.21 (from Flask)

 Downloading itsdangerous-0.24.tar.gz (46kB)
   100% |████████████████████████████████| 51kB 6.1MB/s

Collecting Werkzeug>=0.7 (from Flask)

 Downloading Werkzeug-0.12.1-py2.py3-none-any.whl (312kB)
   100% |████████████████████████████████| 317kB 1.6MB/s

Collecting Jinja2>=2.4 (from Flask)

 Downloading Jinja2-2.9.5-py2.py3-none-any.whl (340kB)
   100% |████████████████████████████████| 348kB 2.5MB/s

Collecting click>=2.0 (from Flask)

 Downloading click-6.7-py2.py3-none-any.whl (71kB)
   100% |████████████████████████████████| 71kB 4.6MB/s

Collecting singledispatch (from tornado)

 Downloading singledispatch-3.4.0.3-py2.py3-none-any.whl

Collecting certifi (from tornado)

 Downloading certifi-2017.1.23-py2.py3-none-any.whl (382kB)
   100% |████████████████████████████████| 389kB 1.2MB/s

Collecting backports_abc>=0.4 (from tornado)

 Downloading backports_abc-0.5-py2.py3-none-any.whl

Requirement already satisfied: pycparser in /Library/Python/2.7/site-packages (from cffi>=0.8->jpegtran-cffi) Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->Flask)

 Downloading MarkupSafe-1.0.tar.gz

Requirement already satisfied: six in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from singledispatch->tornado) Installing collected packages: jpegtran-cffi, itsdangerous, Werkzeug, MarkupSafe, Jinja2, click, Flask, requests, zipstream, singledispatch, certifi, backports-abc, tornado, Wand

 Running setup.py install for jpegtran-cffi ... done
 Running setup.py install for itsdangerous ... done
 Running setup.py install for MarkupSafe ... done
 Running setup.py install for zipstream ... done
 Running setup.py install for tornado ... done

Exception: Traceback (most recent call last):

 File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main
   status = self.run(options, args)
 File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 342, in run
   prefix=options.prefix_path,
 File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 784, in install
   **kwargs
 File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 851, in install
   self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
 File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files
   isolated=self.isolated,
 File "/Library/Python/2.7/site-packages/pip/wheel.py", line 377, in move_wheel_files
   clobber(source, dest, False, fixer=fixer, filter=filter)
 File "/Library/Python/2.7/site-packages/pip/wheel.py", line 323, in clobber
   shutil.copyfile(srcfile, destfile)
 File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 83, in copyfile
   with open(dst, 'wb') as fdst:

IOError: [Errno 1] Operation not permitted: '/System/Library/Frameworks/Python.framework/Versions/2.7/README.rst' Warrens-MBP:build hdpe$ ls -l /System/Library/Frameworks/Python.framework/Versions/2.7/README.rst ls: /System/Library/Frameworks/Python.framework/Versions/2.7/README.rst: No such file or directory Warrens-MBP:build hdpe$ ls -l /System/Library/Frameworks/Python.framework/Versions/2.7 total 2536 drwxr-xr-x 4 root wheel 136 Dec 13 01:36 Extras lrwxr-xr-x 1 root wheel 17 Dec 26 14:35 Headers -> include/python2.7 drwxr-xr-x 3 root wheel 102 Jul 30 2016 Mac -rwxr-xr-x 1 root wheel 2616016 Dec 13 02:15 Python drwxr-xr-x 6 root wheel 204 Dec 13 01:35 Resources drwxr-xr-x 3 root wheel 102 Jul 30 2016 _CodeSignature drwxr-xr-x 24 root wheel 816 Dec 26 14:40 bin drwxr-xr-x 3 root wheel 102 Jul 30 2016 include drwxr-xr-x 5 root wheel 170 Dec 26 14:40 lib Warrens-MBP:build hdpe$ sudo pip install jpegtran-cffi Flask requests zipstream tornado Wand The directory '/Users/hdpe/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/Users/hdpe/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Requirement already satisfied: jpegtran-cffi in /Library/Python/2.7/site-packages Requirement already satisfied: Flask in /Library/Python/2.7/site-packages Requirement already satisfied: requests in /Library/Python/2.7/site-packages Requirement already satisfied: zipstream in /Library/Python/2.7/site-packages Requirement already satisfied: tornado in /Library/Python/2.7/site-packages Requirement already satisfied: Wand in /Library/Python/2.7/site-packages Requirement already satisfied: cffi>=0.8 in /Library/Python/2.7/site-packages (from jpegtran-cffi) Requirement already satisfied: itsdangerous>=0.21 in /Library/Python/2.7/site-packages (from Flask) Requirement already satisfied: Werkzeug>=0.7 in /Library/Python/2.7/site-packages (from Flask) Requirement already satisfied: Jinja2>=2.4 in /Library/Python/2.7/site-packages (from Flask) Requirement already satisfied: click>=2.0 in /Library/Python/2.7/site-packages (from Flask) Requirement already satisfied: singledispatch in /Library/Python/2.7/site-packages (from tornado) Requirement already satisfied: certifi in /Library/Python/2.7/site-packages (from tornado) Requirement already satisfied: backports_abc>=0.4 in /Library/Python/2.7/site-packages (from tornado) Requirement already satisfied: pycparser in /Library/Python/2.7/site-packages (from cffi>=0.8->jpegtran-cffi) Requirement already satisfied: MarkupSafe>=0.23 in /Library/Python/2.7/site-packages (from Jinja2>=2.4->Flask) Requirement already satisfied: six in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from singledispatch->tornado)

</syntaxhighlight>
<syntaxhighlight lang="bash">

$ sudo pip install http://buildbot.diybookscanner.org/nightly/spreads-latest.tar.gz The directory '/Users/hdpe/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/Users/hdpe/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting http://buildbot.diybookscanner.org/nightly/spreads-latest.tar.gz

 Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x10bb43350>, 'Connection to buildbot.diybookscanner.org timed out. (connect timeout=15)')': /nightly/spreads-latest.tar.gz
 Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x10bb434d0>, 'Connection to buildbot.diybookscanner.org timed out. (connect timeout=15)')': /nightly/spreads-latest.tar.gz
 Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x10bb43650>, 'Connection to buildbot.diybookscanner.org timed out. (connect timeout=15)')': /nightly/spreads-latest.tar.gz
 Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x10bb437d0>, 'Connection to buildbot.diybookscanner.org timed out. (connect timeout=15)')': /nightly/spreads-latest.tar.gz
 Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x10bb43950>, 'Connection to buildbot.diybookscanner.org timed out. (connect timeout=15)')': /nightly/spreads-latest.tar.gz

^COperation cancelled by user

<syntaxhighlight lang="bash"> </syntaxhighlight>
    • Broken! Gets HTTP timeout. But we've cloned from github, so hopefully all will be well.
  • Due to noisebridge.net outage just now, command output was lost for the following commands. cmake and legacy Qt4 was installed successfully. PySide was failing around them.
<syntaxhighlight lang="bash">
 480  sudo apt-get install python-pyside
 481  brew search python-pyside
 482  brew search pyside
 483  sudo pip install PySide
 484  locate cmake
 485  locate cmake|less
 486  which cmake
 487  file/usr/local/lib/cmake
 488  file /usr/local/lib/cmake
 489  ls -l /usr/local/lib/cmake
 490  ls -l /usr/local/lib/cmake|less
 491  brew search cmake
 492  brew install cmake
 493  sudo pip install PySide
 494  sudo pip install PySide
 495  brew search qt4
 496  brew installed
 497  man brew
 498  brew list|less
 499  brew install cartr/qt4/qt
</syntaxhighlight>
  • sudo pip install PySide # attempt nr. 3
<syntaxhighlight lang="bash">

Warrens-MBP:build hdpe$ sudo pip install PySide # attempt nr. 3 Password: The directory '/Users/hdpe/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/Users/hdpe/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting PySide

 Downloading PySide-1.2.4.tar.gz (9.3MB)
   100% |████████████████████████████████| 9.3MB 65kB/s

Installing collected packages: PySide

 Running setup.py install for PySide ... error
   Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-xFfTdi/PySide/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-Klwsna-record/install-record.txt --single-version-externally-managed --compile:
   Removing /private/tmp/pip-build-xFfTdi/PySide/pyside_package
   running install
   running build
   Python architecture is 64bit
   Inserting path "/System/Library/Frameworks/Python.framework/Versions/2.7/bin" to environment
   Inserting path "/private/tmp/pip-build-xFfTdi/PySide/pyside_install/py2.7-qt5.8.0-64bit-release/bin" to environment
   ==============================
   Package version: 1.2.4
   Build type: Release
   Build tests: False
   ---
   Make path: /usr/bin/make
   Make generator: Unix Makefiles
   Make jobs:
   ---
   Script directory: /private/tmp/pip-build-xFfTdi/PySide
   Sources directory: /private/tmp/pip-build-xFfTdi/PySide/sources
   Build directory: /private/tmp/pip-build-xFfTdi/PySide/pyside_build/py2.7-qt5.8.0-64bit-release
   Install directory: /private/tmp/pip-build-xFfTdi/PySide/pyside_install/py2.7-qt5.8.0-64bit-release
   Python site-packages install directory: /private/tmp/pip-build-xFfTdi/PySide/pyside_install/py2.7-qt5.8.0-64bit-release/lib/python2.7/site-packages
   ---
   Python executable: /usr/bin/python
   Python includes: /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
   Python library: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib
   Python prefix: /System/Library/Frameworks/Python.framework/Versions/2.7
   Python scripts: /System/Library/Frameworks/Python.framework/Versions/2.7/bin
   ---
   Qt qmake: /usr/local/bin/qmake
   Qt version: 5.8.0
   Qt bins: /usr/local/Cellar/qt5/5.8.0_1/bin
   Qt plugins: /usr/local/Cellar/qt5/5.8.0_1/plugins
   ---
   OpenSSL libs: None
   ==============================
   Creating build folder /private/tmp/pip-build-xFfTdi/PySide/pyside_build/py2.7-qt5.8.0-64bit-release...
   Creating install folder /private/tmp/pip-build-xFfTdi/PySide/pyside_install/py2.7-qt5.8.0-64bit-release...
   Building module shiboken...
   Creating module build folder /private/tmp/pip-build-xFfTdi/PySide/pyside_build/py2.7-qt5.8.0-64bit-release/shiboken...
   Configuring module shiboken (/private/tmp/pip-build-xFfTdi/PySide/sources/shiboken)...
   Running process: /usr/local/bin/cmake -G "Unix Makefiles" -DQT_QMAKE_EXECUTABLE=/usr/local/bin/qmake -DBUILD_TESTS=False -DDISABLE_DOCSTRINGS=True -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/private/tmp/pip-build-xFfTdi/PySide/pyside_install/py2.7-qt5.8.0-64bit-release /private/tmp/pip-build-xFfTdi/PySide/sources/shiboken -DPYTHON_EXECUTABLE=/usr/bin/python -DPYTHON_INCLUDE_DIR=/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DPYTHON_LIBRARY=/System/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=yes -DALTERNATIVE_QT_INCLUDE_DIR=/usr/local/Cellar/qt5/5.8.0_1/include
   /usr/local/bin/cmake -G Unix Makefiles -DQT_QMAKE_EXECUTABLE=/usr/local/bin/qmake -DBUILD_TESTS=False -DDISABLE_DOCSTRINGS=True -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/private/tmp/pip-build-xFfTdi/PySide/pyside_install/py2.7-qt5.8.0-64bit-release /private/tmp/pip-build-xFfTdi/PySide/sources/shiboken -DPYTHON_EXECUTABLE=/usr/bin/python -DPYTHON_INCLUDE_DIR=/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DPYTHON_LIBRARY=/System/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=yes -DALTERNATIVE_QT_INCLUDE_DIR=/usr/local/Cellar/qt5/5.8.0_1/include
   -- The C compiler identification is AppleClang 8.0.0.8000042
   -- The CXX compiler identification is AppleClang 8.0.0.8000042
   -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
   -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
   -- Detecting C compiler ABI info
   -- Detecting C compiler ABI info - done
   -- Detecting C compile features
   -- Detecting C compile features - done
   -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
   -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
   -- Detecting CXX compiler ABI info
   -- Detecting CXX compiler ABI info - done
   -- Detecting CXX compile features
   -- Detecting CXX compile features - done
   -- Found unsuitable Qt version "5.8.0" from /usr/local/bin/qmake
   -- Found PythonLibs: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib (found suitable version "2.7.10", minimum required is "2.6")
   -- !!! The generated bindings will be installed on /tmp/pip-build-xFfTdi/PySide/pyside_install/py2.7-qt5.8.0-64bit-release/lib/python2.7/site-packages, is it right!?
   -- Found LibXml2: /usr/lib/libxml2.dylib (found suitable version "2.9.4", minimum required is "2.6.32")
   -- Found LibXslt: /usr/lib/libxslt.dylib (found suitable version "1.1.29", minimum required is "1.1.19")
   Qt QTGUI library not found.
   Qt QTXML library not found.
   Qt QTCORE library not found.
   CMake Error at ApiExtractor/CMakeLists.txt:82 (qt4_add_resources):
     Unknown CMake command "qt4_add_resources".


   -- Configuring incomplete, errors occurred!
   See also "/tmp/pip-build-xFfTdi/PySide/pyside_build/py2.7-qt5.8.0-64bit-release/shiboken/CMakeFiles/CMakeOutput.log".
   error: Error configuring shiboken
   ----------------------------------------

Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-xFfTdi/PySide/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-Klwsna-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/tmp/pip-build-xFfTdi/PySide/ Warrens-MBP:build hdpe$ locate qt4_add_resources | wc -l

      0
</syntaxhighlight>
  • As Steele Nivenson points out, we don't really need Qt4, my blood sugar ran low and I just kept assailing the install list.
  • So, let's try running `spreads`. No dice: python's missing `colorama`
<syntaxhighlight lang="bash">

Warrens-MBP:spreads hdpe$ ./spread configure Traceback (most recent call last):

 File "./spread", line 29, in <module>
   import colorama
ImportError: No module named colorama</syntaxhighlight>
  • sudo pip install colorama (successful)
<syntaxhighlight lang="bash">

Warrens-MBP:spreads hdpe$ sudo pip install colorama Password: The directory '/Users/hdpe/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/Users/hdpe/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting colorama

 Downloading colorama-0.3.7-py2.py3-none-any.whl

Installing collected packages: colorama Successfully installed colorama-0.3.7

</syntaxhighlight>
  • ./spread configure
<syntaxhighlight lang="bash">

Warrens-MBP:spreads hdpe$ ./spread configure Traceback (most recent call last):

 File "./spread", line 31, in <module>
   import spreads.cli as cli
 File "/Users/hdpe/build/spreads/spreads/cli.py", line 29, in <module>
   import spreads.workflow
 File "/Users/hdpe/build/spreads/spreads/workflow.py", line 32, in <module>
   import concurrent.futures as concfut
ImportError: No module named concurrent.futures</syntaxhighlight>
  • sudo pip install futures (successful)
<syntaxhighlight lang="bash">

Warrens-MBP:spreads hdpe$ sudo pip install futures The directory '/Users/hdpe/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/Users/hdpe/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting futures

 Downloading futures-3.0.5-py2-none-any.whl

Installing collected packages: futures

Successfully installed futures-3.0.5</syntaxhighlight>

$ ./spread configure # Huh: no ./requirements.txt

<syntaxhighlight lang="bash">

Warrens-MBP:spreads hdpe$ ./spread configure Traceback (most recent call last):

 File "./spread", line 31, in <module>
   import spreads.cli as cli
 File "/Users/hdpe/build/spreads/spreads/cli.py", line 29, in <module>
   import spreads.workflow
 File "/Users/hdpe/build/spreads/spreads/workflow.py", line 34, in <module>
   import spreads.vendor.confit as confit
 File "/Users/hdpe/build/spreads/spreads/vendor/confit.py", line 23, in <module>
   import yaml
ImportError: No module named yaml</syntaxhighlight>
  • sudo pip install pyyaml
<syntaxhighlight lang="bash">

Warrens-MBP:spreads hdpe$ sudo pip install pyyaml \The directory '/Users/hdpe/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/Users/hdpe/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting pyyaml

 Downloading PyYAML-3.12.tar.gz (253kB)
   100% |████████████████████████████████| 256kB 1.8MB/s

Installing collected packages: pyyaml

 Running setup.py install for pyyaml ... done
Successfully installed pyyaml-3.12</syntaxhighlight>
  • But there is a setup.py which may cover some of the dependencies...
<syntaxhighlight lang="bash">

Warrens-MBP:spreads hdpe$ python setup.py build /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/dist.py:294: UserWarning: The version specified ('0.5git20170318.5075') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details.

 "details." % self.metadata.version

running build running build_py creating build creating build/lib creating build/lib/spreads copying spreads/__init__.py -> build/lib/spreads copying spreads/cli.py -> build/lib/spreads copying spreads/config.py -> build/lib/spreads copying spreads/main.py -> build/lib/spreads copying spreads/metadata.py -> build/lib/spreads copying spreads/plugin.py -> build/lib/spreads copying spreads/tkconfigure.py -> build/lib/spreads copying spreads/util.py -> build/lib/spreads copying spreads/workflow.py -> build/lib/spreads creating build/lib/spreads/vendor copying spreads/vendor/__init__.py -> build/lib/spreads/vendor copying spreads/vendor/bagit.py -> build/lib/spreads/vendor copying spreads/vendor/confit.py -> build/lib/spreads/vendor creating build/lib/spreads/vendor/huey copying spreads/vendor/huey/__init__.py -> build/lib/spreads/vendor/huey copying spreads/vendor/huey/api.py -> build/lib/spreads/vendor/huey copying spreads/vendor/huey/consumer.py -> build/lib/spreads/vendor/huey copying spreads/vendor/huey/exceptions.py -> build/lib/spreads/vendor/huey copying spreads/vendor/huey/registry.py -> build/lib/spreads/vendor/huey copying spreads/vendor/huey/utils.py -> build/lib/spreads/vendor/huey creating build/lib/spreads/vendor/huey/backends copying spreads/vendor/huey/backends/__init__.py -> build/lib/spreads/vendor/huey/backends copying spreads/vendor/huey/backends/base.py -> build/lib/spreads/vendor/huey/backends copying spreads/vendor/huey/backends/dummy.py -> build/lib/spreads/vendor/huey/backends copying spreads/vendor/huey/backends/redis_backend.py -> build/lib/spreads/vendor/huey/backends copying spreads/vendor/huey/backends/sqlite_backend.py -> build/lib/spreads/vendor/huey/backends creating build/lib/spreadsplug copying spreadsplug/__init__.py -> build/lib/spreadsplug copying spreadsplug/autorotate.py -> build/lib/spreadsplug copying spreadsplug/djvubind.py -> build/lib/spreadsplug copying spreadsplug/hidtrigger.py -> build/lib/spreadsplug copying spreadsplug/intervaltrigger.py -> build/lib/spreadsplug copying spreadsplug/pdfbeads.py -> build/lib/spreadsplug copying spreadsplug/scantailor.py -> build/lib/spreadsplug copying spreadsplug/tesseract.py -> build/lib/spreadsplug creating build/lib/spreadsplug/dev copying spreadsplug/dev/__init__.py -> build/lib/spreadsplug/dev copying spreadsplug/dev/chdkcamera.py -> build/lib/spreadsplug/dev copying spreadsplug/dev/dummy.py -> build/lib/spreadsplug/dev copying spreadsplug/dev/gphoto2camera.py -> build/lib/spreadsplug/dev creating build/lib/spreadsplug/gui copying spreadsplug/gui/__init__.py -> build/lib/spreadsplug/gui copying spreadsplug/gui/gui.py -> build/lib/spreadsplug/gui copying spreadsplug/gui/gui_rc.py -> build/lib/spreadsplug/gui creating build/lib/spreadsplug/web copying spreadsplug/web/__init__.py -> build/lib/spreadsplug/web copying spreadsplug/web/app.py -> build/lib/spreadsplug/web copying spreadsplug/web/discovery.py -> build/lib/spreadsplug/web copying spreadsplug/web/endpoints.py -> build/lib/spreadsplug/web copying spreadsplug/web/handlers.py -> build/lib/spreadsplug/web copying spreadsplug/web/tasks.py -> build/lib/spreadsplug/web copying spreadsplug/web/util.py -> build/lib/spreadsplug/web copying spreadsplug/web/winservice.py -> build/lib/spreadsplug/web creating build/lib/spreadsplug/gui/pixmaps copying spreadsplug/gui/pixmaps/monk.png -> build/lib/spreadsplug/gui/pixmaps creating build/lib/spreadsplug/web/client

copying spreadsplug/web/client/index.html -> build/lib/spreadsplug/web/client</syntaxhighlight>
  • Now let's `$ python setup.py install`
<syntaxhighlight lang="bash">

Warrens-MBP:spreads hdpe$ sudo python setup.py install /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/dist.py:294: UserWarning: The version specified ('0.5git20170318.5075') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details.

 "details." % self.metadata.version

running install Checking .pth file support in /Library/Python/2.7/site-packages/ /usr/bin/python -E -c pass TEST PASSED: /Library/Python/2.7/site-packages/ appears to support .pth files running bdist_egg running egg_info creating spreads.egg-info writing requirements to spreads.egg-info/requires.txt writing spreads.egg-info/PKG-INFO writing top-level names to spreads.egg-info/top_level.txt writing dependency_links to spreads.egg-info/dependency_links.txt writing entry points to spreads.egg-info/entry_points.txt writing manifest file 'spreads.egg-info/SOURCES.txt' reading manifest file 'spreads.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no directories found matching 'spreadsplug/web/client/build' writing manifest file 'spreads.egg-info/SOURCES.txt' installing library code to build/bdist.macosx-10.12-intel/egg running install_lib running build_py creating build/bdist.macosx-10.12-intel creating build/bdist.macosx-10.12-intel/egg creating build/bdist.macosx-10.12-intel/egg/spreads copying build/lib/spreads/__init__.py -> build/bdist.macosx-10.12-intel/egg/spreads copying build/lib/spreads/cli.py -> build/bdist.macosx-10.12-intel/egg/spreads copying build/lib/spreads/config.py -> build/bdist.macosx-10.12-intel/egg/spreads copying build/lib/spreads/main.py -> build/bdist.macosx-10.12-intel/egg/spreads copying build/lib/spreads/metadata.py -> build/bdist.macosx-10.12-intel/egg/spreads copying build/lib/spreads/plugin.py -> build/bdist.macosx-10.12-intel/egg/spreads copying build/lib/spreads/tkconfigure.py -> build/bdist.macosx-10.12-intel/egg/spreads copying build/lib/spreads/util.py -> build/bdist.macosx-10.12-intel/egg/spreads creating build/bdist.macosx-10.12-intel/egg/spreads/vendor copying build/lib/spreads/vendor/__init__.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor copying build/lib/spreads/vendor/bagit.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor copying build/lib/spreads/vendor/confit.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor creating build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey copying build/lib/spreads/vendor/huey/__init__.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey copying build/lib/spreads/vendor/huey/api.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey creating build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends copying build/lib/spreads/vendor/huey/backends/__init__.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends copying build/lib/spreads/vendor/huey/backends/base.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends copying build/lib/spreads/vendor/huey/backends/dummy.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends copying build/lib/spreads/vendor/huey/backends/redis_backend.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends copying build/lib/spreads/vendor/huey/backends/sqlite_backend.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends copying build/lib/spreads/vendor/huey/consumer.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey copying build/lib/spreads/vendor/huey/exceptions.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey copying build/lib/spreads/vendor/huey/registry.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey copying build/lib/spreads/vendor/huey/utils.py -> build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey copying build/lib/spreads/workflow.py -> build/bdist.macosx-10.12-intel/egg/spreads creating build/bdist.macosx-10.12-intel/egg/spreadsplug copying build/lib/spreadsplug/__init__.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug copying build/lib/spreadsplug/autorotate.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug creating build/bdist.macosx-10.12-intel/egg/spreadsplug/dev copying build/lib/spreadsplug/dev/__init__.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/dev copying build/lib/spreadsplug/dev/chdkcamera.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/dev copying build/lib/spreadsplug/dev/dummy.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/dev copying build/lib/spreadsplug/dev/gphoto2camera.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/dev copying build/lib/spreadsplug/djvubind.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug creating build/bdist.macosx-10.12-intel/egg/spreadsplug/gui copying build/lib/spreadsplug/gui/__init__.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/gui copying build/lib/spreadsplug/gui/gui.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/gui copying build/lib/spreadsplug/gui/gui_rc.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/gui creating build/bdist.macosx-10.12-intel/egg/spreadsplug/gui/pixmaps copying build/lib/spreadsplug/gui/pixmaps/monk.png -> build/bdist.macosx-10.12-intel/egg/spreadsplug/gui/pixmaps copying build/lib/spreadsplug/hidtrigger.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug copying build/lib/spreadsplug/intervaltrigger.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug copying build/lib/spreadsplug/pdfbeads.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug copying build/lib/spreadsplug/scantailor.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug copying build/lib/spreadsplug/tesseract.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug creating build/bdist.macosx-10.12-intel/egg/spreadsplug/web copying build/lib/spreadsplug/web/__init__.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/web copying build/lib/spreadsplug/web/app.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/web creating build/bdist.macosx-10.12-intel/egg/spreadsplug/web/client copying build/lib/spreadsplug/web/client/index.html -> build/bdist.macosx-10.12-intel/egg/spreadsplug/web/client copying build/lib/spreadsplug/web/discovery.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/web copying build/lib/spreadsplug/web/endpoints.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/web copying build/lib/spreadsplug/web/handlers.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/web copying build/lib/spreadsplug/web/tasks.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/web copying build/lib/spreadsplug/web/util.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/web copying build/lib/spreadsplug/web/winservice.py -> build/bdist.macosx-10.12-intel/egg/spreadsplug/web byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/__init__.py to __init__.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/cli.py to cli.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/config.py to config.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/main.py to main.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/metadata.py to metadata.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/plugin.py to plugin.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/tkconfigure.py to tkconfigure.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/util.py to util.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/__init__.py to __init__.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/bagit.py to bagit.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/confit.py to confit.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/__init__.py to __init__.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/api.py to api.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends/__init__.py to __init__.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends/base.py to base.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends/dummy.py to dummy.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends/redis_backend.py to redis_backend.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/backends/sqlite_backend.py to sqlite_backend.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/consumer.py to consumer.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/exceptions.py to exceptions.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/registry.py to registry.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/vendor/huey/utils.py to utils.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreads/workflow.py to workflow.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/__init__.py to __init__.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/autorotate.py to autorotate.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/dev/__init__.py to __init__.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/dev/chdkcamera.py to chdkcamera.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/dev/dummy.py to dummy.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/dev/gphoto2camera.py to gphoto2camera.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/djvubind.py to djvubind.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/gui/__init__.py to __init__.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/gui/gui.py to gui.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/gui/gui_rc.py to gui_rc.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/hidtrigger.py to hidtrigger.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/intervaltrigger.py to intervaltrigger.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/pdfbeads.py to pdfbeads.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/scantailor.py to scantailor.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/tesseract.py to tesseract.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/web/__init__.py to __init__.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/web/app.py to app.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/web/discovery.py to discovery.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/web/endpoints.py to endpoints.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/web/handlers.py to handlers.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/web/tasks.py to tasks.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/web/util.py to util.pyc byte-compiling build/bdist.macosx-10.12-intel/egg/spreadsplug/web/winservice.py to winservice.pyc creating build/bdist.macosx-10.12-intel/egg/EGG-INFO copying spreads.egg-info/PKG-INFO -> build/bdist.macosx-10.12-intel/egg/EGG-INFO copying spreads.egg-info/SOURCES.txt -> build/bdist.macosx-10.12-intel/egg/EGG-INFO copying spreads.egg-info/dependency_links.txt -> build/bdist.macosx-10.12-intel/egg/EGG-INFO copying spreads.egg-info/entry_points.txt -> build/bdist.macosx-10.12-intel/egg/EGG-INFO copying spreads.egg-info/not-zip-safe -> build/bdist.macosx-10.12-intel/egg/EGG-INFO copying spreads.egg-info/requires.txt -> build/bdist.macosx-10.12-intel/egg/EGG-INFO copying spreads.egg-info/top_level.txt -> build/bdist.macosx-10.12-intel/egg/EGG-INFO creating dist creating 'dist/spreads-0.5git20170318.5075-py2.7.egg' and adding 'build/bdist.macosx-10.12-intel/egg' to it removing 'build/bdist.macosx-10.12-intel/egg' (and everything under it) Processing spreads-0.5git20170318.5075-py2.7.egg creating /Library/Python/2.7/site-packages/spreads-0.5git20170318.5075-py2.7.egg Extracting spreads-0.5git20170318.5075-py2.7.egg to /Library/Python/2.7/site-packages Adding spreads 0.5git20170318.5075 to easy-install.pth file Installing spread script to /usr/local/bin

Installed /Library/Python/2.7/site-packages/spreads-0.5git20170318.5075-py2.7.egg Processing dependencies for spreads===0.5git20170318.5075 Searching for pathlib>=1.0.1 Reading https://pypi.python.org/simple/pathlib/ Best match: pathlib 1.0.1 Downloading https://pypi.python.org/packages/ac/aa/9b065a76b9af472437a0059f77e8f962fe350438b927cb80184c32f075eb/pathlib-1.0.1.tar.gz#md5=5099ed48be9b1ee29b31c82819240537 Processing pathlib-1.0.1.tar.gz Writing /tmp/easy_install-8QbKho/pathlib-1.0.1/setup.cfg Running pathlib-1.0.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-8QbKho/pathlib-1.0.1/egg-dist-tmp-mIBq3f zip_safe flag not set; analyzing archive contents... Copying pathlib-1.0.1-py2.7.egg to /Library/Python/2.7/site-packages Adding pathlib 1.0.1 to easy-install.pth file

Installed /Library/Python/2.7/site-packages/pathlib-1.0.1-py2.7.egg Searching for isbnlib>=3.3.8 Reading https://pypi.python.org/simple/isbnlib/ Best match: isbnlib 3.6.7 Downloading https://pypi.python.org/packages/48/68/28d1a1ae40eb6103948b1407d20f26377aac09da37b76a627b72a7cebc70/isbnlib-3.6.7.tar.gz#md5=438732eda513ee46fe00bcfe85d71651 Processing isbnlib-3.6.7.tar.gz Writing /tmp/easy_install-aWvmTv/isbnlib-3.6.7/setup.cfg Running isbnlib-3.6.7/setup.py -q bdist_egg --dist-dir /tmp/easy_install-aWvmTv/isbnlib-3.6.7/egg-dist-tmp-4qfl6Q zip_safe flag not set; analyzing archive contents... Copying isbnlib-3.6.7-py2.7.egg to /Library/Python/2.7/site-packages Adding isbnlib 3.6.7 to easy-install.pth file

Installed /Library/Python/2.7/site-packages/isbnlib-3.6.7-py2.7.egg Searching for psutil>=2.0.0 Reading https://pypi.python.org/simple/psutil/ Best match: psutil 5.2.0 Downloading https://pypi.python.org/packages/3c/2f/f3ab91349c666f009077157b12057e613a3152a46a6c3be883777546b6de/psutil-5.2.0.tar.gz#md5=c9aa2599dcd9e5b59d71b6660d396062 Processing psutil-5.2.0.tar.gz Writing /tmp/easy_install-p3aAJy/psutil-5.2.0/setup.cfg Running psutil-5.2.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-p3aAJy/psutil-5.2.0/egg-dist-tmp-xnkJUr warning: manifest_maker: MANIFEST.in, line 14: 'recursive-include' expects <dir> <pattern1> <pattern2> ...

warning: no previously-included files matching '*' found under directory 'docs/_build' warning: no previously-included files matching '*' found under directory '.ci' zip_safe flag not set; analyzing archive contents... psutil.__init__: module references __file__ psutil.tests.__init__: module references __file__ psutil.tests.runner: module references __file__ psutil.tests.test_bsd: module references __file__ psutil.tests.test_linux: module references __file__ psutil.tests.test_memory_leaks: module references __file__ psutil.tests.test_misc: module references __file__ psutil.tests.test_osx: module references __file__ psutil.tests.test_posix: module references __file__ psutil.tests.test_process: module references __file__ psutil.tests.test_sunos: module references __file__ psutil.tests.test_system: module references __file__ psutil.tests.test_windows: module references __file__ creating /Library/Python/2.7/site-packages/psutil-5.2.0-py2.7-macosx-10.12-intel.egg Extracting psutil-5.2.0-py2.7-macosx-10.12-intel.egg to /Library/Python/2.7/site-packages Adding psutil 5.2.0 to easy-install.pth file

Installed /Library/Python/2.7/site-packages/psutil-5.2.0-py2.7-macosx-10.12-intel.egg Searching for roman>=2.0.0 Reading https://pypi.python.org/simple/roman/ Best match: roman 2.0.0 Downloading https://pypi.python.org/packages/92/a1/34ee5c17431a1c9df71647511faa0fa1b3a4c9e67bc9592280af34797e49/roman-2.0.0.zip#md5=aa71d131eec16d45c030fd06a27c9d17 Processing roman-2.0.0.zip Writing /tmp/easy_install-BNMQNB/roman-2.0.0/setup.cfg Running roman-2.0.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-BNMQNB/roman-2.0.0/egg-dist-tmp-t_CaQk warning: no files found matching '*.rst' warning: no previously-included files matching '*.pyc' found anywhere in distribution Copying roman-2.0.0-py2.7.egg to /Library/Python/2.7/site-packages Adding roman 2.0.0 to easy-install.pth file

Installed /Library/Python/2.7/site-packages/roman-2.0.0-py2.7.egg Searching for blinker>=1.3 Reading https://pypi.python.org/simple/blinker/ Best match: blinker 1.4 Downloading https://pypi.python.org/packages/1b/51/e2a9f3b757eb802f61dc1f2b09c8c99f6eb01cf06416c0671253536517b6/blinker-1.4.tar.gz#md5=8b3722381f83c2813c52de3016b68d33 Processing blinker-1.4.tar.gz Writing /tmp/easy_install-3W30lU/blinker-1.4/setup.cfg Running blinker-1.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-3W30lU/blinker-1.4/egg-dist-tmp-GhaRNv zip_safe flag not set; analyzing archive contents... Copying blinker-1.4-py2.7.egg to /Library/Python/2.7/site-packages Adding blinker 1.4 to easy-install.pth file

Installed /Library/Python/2.7/site-packages/blinker-1.4-py2.7.egg Searching for enum34==1.1.6 Best match: enum34 1.1.6 Adding enum34 1.1.6 to easy-install.pth file

Using /Library/Python/2.7/site-packages Searching for futures==3.0.5 Best match: futures 3.0.5 futures 3.0.5 is already the active version in easy-install.pth

Using /Library/Python/2.7/site-packages Searching for PyYAML==3.12 Best match: PyYAML 3.12 PyYAML 3.12 is already the active version in easy-install.pth

Using /Library/Python/2.7/site-packages Searching for colorama==0.3.7 Best match: colorama 0.3.7 colorama 0.3.7 is already the active version in easy-install.pth

Using /Library/Python/2.7/site-packages

Finished processing dependencies for spreads===0.5git20170318.5075</syntaxhighlight>
<syntaxhighlight lang="bash">

This box intentionally empty.

</syntaxhighlight>
<syntaxhighlight lang="bash">

This box intentionally empty.

</syntaxhighlight>
<syntaxhighlight lang="bash">

This box intentionally empty.

</syntaxhighlight>
<syntaxhighlight lang="bash">

This box intentionally empty.

</syntaxhighlight>
<syntaxhighlight lang="bash">

This box intentionally empty.

</syntaxhighlight>
<syntaxhighlight lang="bash">

This box intentionally empty.

</syntaxhighlight>
<syntaxhighlight lang="bash">

This box intentionally empty.

</syntaxhighlight>