Installing the dev environment: missing dependency?

Really, thoroughly enjoyed and appreciated this awesome doc:

https://docs.mopidy.com/en/latest/devenv

So gave it a quick crack.

Got as far as tox, and it’s first gripe is:

py27-tornado32 runtests: commands[0] | pytest tests/http
WARNING:test command found but not installed in testenv
  cmd: /home/bernd/.virtualenvs/mopidy/bin/pytest
  env: /home/bernd/workspace/Mopidy/mopidy/.tox/py27-tornado32
Maybe you forgot to specify a dependency? See also the whitelist_externals envconfig setting.

Fair question. I followed the directions on the doc above pretty accurately I felt and notably:

pip install --upgrade -r dev-requirements.txt

which I though should have defined all the dependencies. So what have I misunderstood here?

It has another rather verbose complaint in red following that:

docs installdeps: -r/home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt
ERROR: invocation failed (exit code 1), logfile: /home/bernd/workspace/Mopidy/mopidy/.tox/docs/log/docs-1.log
ERROR: actionid: docs
msg: getenv
cmdargs: ['/home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin/pip', 'install', '-r/home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt']
env: {'LC_NUMERIC': 'en_AU.UTF-8', 'MDMSESSION': 'cinnamon', 'QT_QPA_PLATFORMTHEME': 'qgnomeplatform', 'NO_PROXY': 'localhost,127.0.0.0/8,::1', 'GJS_DEBUG_OUTPUT': 'stderr', 'LC_MEASUREMENT': 'en_AU.UTF-8', 'GTK_IM_MODULE': 'xim', 'XDG_CURRENT_DESKTOP': 'X-Cinnamon', 'XDG_VTNR': '8', 'MDM_LANG': 'en_AU.UTF-8', 'LOGNAME': 'bernd', 'USER': 'bernd', 'HOME': '/home/bernd', 'LC_PAPER': 'en_AU.UTF-8', 'PATH': '/home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin:/home/bernd/.virtualenvs/mopidy/bin:/home/bernd/kde/bin:/home/bernd/bin:/home/bernd/bin/eclipse:/home/bernd/kde/bin:/home/bernd/bin:/home/bernd/bin/eclipse:/home/bernd/kde/bin:/home/bernd/kde/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games', 'VIRTUALENVWRAPPER_SCRIPT': '/usr/local/bin/virtualenvwrapper.sh', 'DISPLAY': ':0', 'SSH_AGENT_PID': '2055', 'LANG': 'en_AU.UTF-8', 'KDEDIR': '/home/bernd/kde', 'TERM': 'xterm-256color', 'SHELL': '/bin/bash', 'QT_STYLE_OVERRIDE': 'gtk', 'SESSION_MANAGER': 'local/bigfoot:@/tmp/.ICE-unix/1979,unix/bigfoot:/tmp/.ICE-unix/1979', 'LC_MONETARY': 'en_AU.UTF-8', 'QT_LINUX_ACCESSIBILITY_ALWAYS_ON': '1', 'MANDATORY_PATH': '/usr/share/gconf/cinnamon.mandatory.path', 'CLUTTER_IM_MODULE': 'xim', 'VIRTUAL_ENV': '/home/bernd/workspace/Mopidy/mopidy/.tox/docs', 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated', 'QT_ACCESSIBILITY': '1', 'WINDOWPATH': '8', 'GTK_OVERLAY_SCROLLING': '1', 'XMODIFIERS': '@im=none', 'PYTHONHASHSEED': '2197950845', 'GPG_AGENT_INFO': '/home/bernd/.gnupg/S.gpg-agent:0:1', 'QT4_IM_MODULE': 'xim', 'USERNAME': 'bernd', 'WORKON_HOME': '/home/bernd/.virtualenvs', 'SSH_AUTH_SOCK': '/run/user/1000/keyring/ssh', 'GDM_XSERVER_LOCATION': 'local', 'XDG_RUNTIME_DIR': '/run/user/1000', 'XAUTHORITY': '/home/bernd/.Xauthority', 'KDEDIRS': '/home/bernd/kde', 'LC_ADDRESS': 'en_AU.UTF-8', 'SHLVL': '1', 'CINNAMON_VERSION': '3.2.7', 'VTE_VERSION': '4205', 'GDMSESSION': 'cinnamon', 'LC_TELEPHONE': 'en_AU.UTF-8', 'VIRTUALENVWRAPPER_WORKON_CD': '1', 'PS1': '(mopidy) ${debian_chroot:+($debian_chroot)}\\u@\\h \\w \\$ ', 'XDG_DATA_DIRS': '/usr/share/cinnamon:/usr/share/gnome:/usr/local/share/:/usr/share/:/usr/share/mdm/', 'XDG_SESSION_COOKIE': '2a5d5f96ef9147c0b35535562b32d0ff-1493633221.125194-661587977', 'XDG_SESSION_ID': 'c1', 'DBUS_SESSION_BUS_ADDRESS': 'unix:abstract=/tmp/dbus-jAdWZvhi4a,guid=dc77869f145a840e587faf1c590708c5', '_': '/home/bernd/.virtualenvs/mopidy/bin/tox', 'DEFAULTS_PATH': '/usr/share/gconf/cinnamon.default.path', 'LC_IDENTIFICATION': 'en_AU.UTF-8', 'DESKTOP_SESSION': 'cinnamon', 'WINDOWID': '73993915', 'XDG_CONFIG_DIRS': '/etc/xdg/xdg-cinnamon:/etc/xdg', 'VIRTUALENVWRAPPER_HOOK_DIR': '/home/bernd/.virtualenvs', 'XDG_SESSION_DESKTOP': 'cinnamon', 'LC_COLLATE': 'C', 'GJS_DEBUG_TOPICS': 'JS ERROR;JS LOG', 'MDM_XSERVER_LOCATION': 'local', 'GTK_MODULES': 'gail:atk-bridge', 'PAPERSIZE': 'a4', 'no_proxy': 'localhost,127.0.0.0/8,::1', 'PWD': '/home/bernd/workspace/Mopidy/mopidy', 'LC_NAME': 'en_AU.UTF-8', 'VIRTUALENVWRAPPER_PROJECT_FILENAME': '.project', 'LC_TIME': 'en_AU.UTF-8', 'OLDPWD': '/home/bernd/.virtualenvs/mopidy', 'XDG_SEAT': 'seat0'}

Collecting Sphinx>=1.0 (from -r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached Sphinx-1.6.2-py2.py3-none-any.whl
Collecting pygraphviz (from -r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 2))
  Downloading pygraphviz-1.3.1.zip (123kB)
Requirement already satisfied: Pykka>=1.1 in /usr/lib/python2.7/dist-packages (from -r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 3))
Requirement already satisfied: requests>2.4.3 in /usr/local/lib/python2.7/dist-packages (from -r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 5))
Collecting sphinx_rtd_theme (from -r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 6))
  Downloading sphinx_rtd_theme-0.2.4-py2.py3-none-any.whl (1.4MB)
Requirement already satisfied: six>=1.5 in /usr/lib/python2.7/dist-packages (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
Collecting imagesize (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached imagesize-0.7.1-py2.py3-none-any.whl
Collecting alabaster<0.8,>=0.7 (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached alabaster-0.7.10-py2.py3-none-any.whl
Requirement already satisfied: setuptools in ./.tox/docs/lib/python2.7/site-packages (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
Collecting sphinxcontrib-websupport (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached sphinxcontrib_websupport-1.0.1-py2.py3-none-any.whl
Collecting babel!=2.0,>=1.3 (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached Babel-2.4.0-py2.py3-none-any.whl
Collecting Jinja2>=2.3 (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached Jinja2-2.9.6-py2.py3-none-any.whl
Collecting docutils>=0.11 (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached docutils-0.13.1-py2-none-any.whl
Collecting typing; python_version < "3.5" (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
Requirement already satisfied: Pygments>=2.0 in /usr/local/lib/python2.7/dist-packages (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
Collecting snowballstemmer>=1.1 (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached snowballstemmer-1.2.1-py2.py3-none-any.whl
Requirement already satisfied: pytz>=0a in /usr/local/lib/python2.7/dist-packages (from babel!=2.0,>=1.3->Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
Requirement already satisfied: MarkupSafe>=0.23 in /usr/lib/python2.7/dist-packages (from Jinja2>=2.3->Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
Building wheels for collected packages: pygraphviz
  Running setup.py bdist_wheel for pygraphviz: started
  Running setup.py bdist_wheel for pygraphviz: finished with status 'error'
  Complete output from command /home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-mX2FD3/pygraphviz/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpOcVcPMpip-wheel- --python-tag cp27:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-2.7
  creating build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/version.py -> build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/agraph.py -> build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/graphviz.py -> build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/__init__.py -> build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/release.py -> build/lib.linux-x86_64-2.7/pygraphviz
  creating build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_drawing.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_html.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_unicode.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/__init__.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_graph.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_layout.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_node_attributes.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_attributes.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_attribute_defaults.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_clear.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_readwrite.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_subgraph.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_string.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_edge_attributes.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  running egg_info
  writing top-level names to pygraphviz.egg-info/top_level.txt
  writing pygraphviz.egg-info/PKG-INFO
  writing dependency_links to pygraphviz.egg-info/dependency_links.txt
  reading manifest file 'pygraphviz.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no previously-included files matching '*~' found anywhere in distribution
  warning: no previously-included files matching '*.pyc' found anywhere in distribution
  warning: no previously-included files matching '.svn' found anywhere in distribution
  no previously-included directories found matching 'doc/build'
  writing manifest file 'pygraphviz.egg-info/SOURCES.txt'
  copying pygraphviz/graphviz.i -> build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/graphviz_wrap.c -> build/lib.linux-x86_64-2.7/pygraphviz
  running build_ext
  building 'pygraphviz._graphviz' extension
  creating build/temp.linux-x86_64-2.7
  creating build/temp.linux-x86_64-2.7/pygraphviz
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c pygraphviz/graphviz_wrap.c -o build/temp.linux-x86_64-2.7/pygraphviz/graphviz_wrap.o
  pygraphviz/graphviz_wrap.c:2954:29: fatal error: graphviz/cgraph.h: No such file or directory
   #include "graphviz/cgraph.h"
                               ^
  compilation terminated.
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
  
  ----------------------------------------
  Failed building wheel for pygraphviz
  Running setup.py clean for pygraphviz
Failed to build pygraphviz
Installing collected packages: imagesize, alabaster, sphinxcontrib-websupport, babel, Jinja2, docutils, typing, snowballstemmer, Sphinx, pygraphviz, sphinx-rtd-theme
  Running setup.py install for pygraphviz: started
    Running setup.py install for pygraphviz: finished with status 'error'
    Complete output from command /home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-mX2FD3/pygraphviz/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-5YFetx-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/bernd/workspace/Mopidy/mopidy/.tox/docs/include/site/python2.7/pygraphviz:
    running install
    Trying pkg-config
    Package libcgraph was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libcgraph.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libcgraph' found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-mX2FD3/pygraphviz/setup.py", line 87, in <module>
        tests_require=['nose>=0.10.1', 'doctest-ignore-unicode>=0.1.0',],
      File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
        dist.run_commands()
      File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "setup_commands.py", line 44, in modified_run
        self.include_path, self.library_path = get_graphviz_dirs()
      File "setup_extra.py", line 121, in get_graphviz_dirs
        include_dirs, library_dirs = _pkg_config()
      File "setup_extra.py", line 44, in _pkg_config
        output = S.check_output(['pkg-config', '--libs-only-L', 'libcgraph'])
      File "/usr/lib/python2.7/subprocess.py", line 574, in check_output
        raise CalledProcessError(retcode, cmd, output=output)
    subprocess.CalledProcessError: Command '['pkg-config', '--libs-only-L', 'libcgraph']' returned non-zero exit status 1
    
    ----------------------------------------
Command "/home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-mX2FD3/pygraphviz/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-5YFetx-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/bernd/workspace/Mopidy/mopidy/.tox/docs/include/site/python2.7/pygraphviz" failed with error code 1 in /tmp/pip-build-mX2FD3/pygraphviz/

ERROR: could not install deps [-r/home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt]; v = InvocationError('/home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin/pip install -r/home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (see /home/bernd/workspace/Mopidy/mopidy/.tox/docs/log/docs-1.log)', 1)

with the final summary of:

_________________________________________ summary __________________________________________
  py27: commands succeeded
  py27-tornado32: commands succeeded
ERROR:   docs: could not install deps [-r/home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt]; v = InvocationError('/home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin/pip install -r/home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (see /home/bernd/workspace/Mopidy/mopidy/.tox/docs/log/docs-1.log)', 1)
  flake8: commands succeeded

So it looks like the first one is a curio, and perhaps something missing from dev-requirements.txt and the second is a break.

The log file it mentions (/home/bernd/workspace/Mopidy/mopidy/.tox/docs/log/docs-1.log) is not short and contains:

actionid: docs
msg: getenv
cmdargs: ['/home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin/pip', 'install', '-r/home/bernd/workspace/Mopidy/mopidy/docs/req
uirements.txt']
env: {'LC_NUMERIC': 'en_AU.UTF-8', 'MDMSESSION': 'cinnamon', 'QT_QPA_PLATFORMTHEME': 'qgnomeplatform', 'NO_PROXY': 'localhost
,127.0.0.0/8,::1', 'GJS_DEBUG_OUTPUT': 'stderr', 'LC_MEASUREMENT': 'en_AU.UTF-8', 'GTK_IM_MODULE': 'xim', 'XDG_CURRENT_DESKTO
P': 'X-Cinnamon', 'XDG_VTNR': '8', 'MDM_LANG': 'en_AU.UTF-8', 'LOGNAME': 'bernd', 'USER': 'bernd', 'HOME': '/home/bernd', 'LC
_PAPER': 'en_AU.UTF-8', 'PATH': '/home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin:/home/bernd/.virtualenvs/mopidy/bin:/home/
bernd/kde/bin:/home/bernd/bin:/home/bernd/bin/eclipse:/home/bernd/kde/bin:/home/bernd/bin:/home/bernd/bin/eclipse:/home/bernd
/kde/bin:/home/bernd/kde/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games', 'VIRT
UALENVWRAPPER_SCRIPT': '/usr/local/bin/virtualenvwrapper.sh', 'DISPLAY': ':0', 'SSH_AGENT_PID': '2055', 'LANG': 'en_AU.UTF-8'
, 'KDEDIR': '/home/bernd/kde', 'TERM': 'xterm-256color', 'SHELL': '/bin/bash', 'QT_STYLE_OVERRIDE': 'gtk', 'SESSION_MANAGER':
 'local/bigfoot:@/tmp/.ICE-unix/1979,unix/bigfoot:/tmp/.ICE-unix/1979', 'LC_MONETARY': 'en_AU.UTF-8', 'QT_LINUX_ACCESSIBILITY
_ALWAYS_ON': '1', 'MANDATORY_PATH': '/usr/share/gconf/cinnamon.mandatory.path', 'CLUTTER_IM_MODULE': 'xim', 'VIRTUAL_ENV': '/
home/bernd/workspace/Mopidy/mopidy/.tox/docs', 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated', 'QT_ACCESSIBILITY': '1', 'WI
NDOWPATH': '8', 'GTK_OVERLAY_SCROLLING': '1', 'XMODIFIERS': '@im=none', 'PYTHONHASHSEED': '2197950845', 'GPG_AGENT_INFO': '/h
ome/bernd/.gnupg/S.gpg-agent:0:1', 'QT4_IM_MODULE': 'xim', 'USERNAME': 'bernd', 'WORKON_HOME': '/home/bernd/.virtualenvs', 'S
SH_AUTH_SOCK': '/run/user/1000/keyring/ssh', 'GDM_XSERVER_LOCATION': 'local', 'XDG_RUNTIME_DIR': '/run/user/1000', 'XAUTHORIT
Y': '/home/bernd/.Xauthority', 'KDEDIRS': '/home/bernd/kde', 'LC_ADDRESS': 'en_AU.UTF-8', 'SHLVL': '1', 'CINNAMON_VERSION': '
3.2.7', 'VTE_VERSION': '4205', 'GDMSESSION': 'cinnamon', 'LC_TELEPHONE': 'en_AU.UTF-8', 'VIRTUALENVWRAPPER_WORKON_CD': '1', '
PS1': '(mopidy) ${debian_chroot:+($debian_chroot)}\\u@\\h \\w \\$ ', 'XDG_DATA_DIRS': '/usr/share/cinnamon:/usr/share/gnome:/
usr/local/share/:/usr/share/:/usr/share/mdm/', 'XDG_SESSION_COOKIE': '2a5d5f96ef9147c0b35535562b32d0ff-1493633221.125194-6615
87977', 'XDG_SESSION_ID': 'c1', 'DBUS_SESSION_BUS_ADDRESS': 'unix:abstract=/tmp/dbus-jAdWZvhi4a,guid=dc77869f145a840e587faf1c
590708c5', '_': '/home/bernd/.virtualenvs/mopidy/bin/tox', 'DEFAULTS_PATH': '/usr/share/gconf/cinnamon.default.path', 'LC_IDE
NTIFICATION': 'en_AU.UTF-8', 'DESKTOP_SESSION': 'cinnamon', 'WINDOWID': '73993915', 'XDG_CONFIG_DIRS': '/etc/xdg/xdg-cinnamon
:/etc/xdg', 'VIRTUALENVWRAPPER_HOOK_DIR': '/home/bernd/.virtualenvs', 'XDG_SESSION_DESKTOP': 'cinnamon', 'LC_COLLATE': 'C', '
GJS_DEBUG_TOPICS': 'JS ERROR;JS LOG', 'MDM_XSERVER_LOCATION': 'local', 'GTK_MODULES': 'gail:atk-bridge', 'PAPERSIZE': 'a4', '
no_proxy': 'localhost,127.0.0.0/8,::1', 'PWD': '/home/bernd/workspace/Mopidy/mopidy', 'LC_NAME': 'en_AU.UTF-8', 'VIRTUALENVWR
APPER_PROJECT_FILENAME': '.project', 'LC_TIME': 'en_AU.UTF-8', 'OLDPWD': '/home/bernd/.virtualenvs/mopidy', 'XDG_SEAT': 'seat
0'}

Collecting Sphinx>=1.0 (from -r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached Sphinx-1.6.2-py2.py3-none-any.whl
Collecting pygraphviz (from -r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 2))
  Downloading pygraphviz-1.3.1.zip (123kB)
Requirement already satisfied: Pykka>=1.1 in /usr/lib/python2.7/dist-packages (from -r /home/bernd/workspace/Mopidy/mopidy/do
cs/requirements.txt (line 3))
Requirement already satisfied: requests>2.4.3 in /usr/local/lib/python2.7/dist-packages (from -r /home/bernd/workspace/Mopidy
/mopidy/docs/requirements.txt (line 5))
Collecting sphinx_rtd_theme (from -r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 6))
  Downloading sphinx_rtd_theme-0.2.4-py2.py3-none-any.whl (1.4MB)
Requirement already satisfied: six>=1.5 in /usr/lib/python2.7/dist-packages (from Sphinx>=1.0->-r /home/bernd/workspace/Mopid
y/mopidy/docs/requirements.txt (line 1))
Collecting imagesize (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached imagesize-0.7.1-py2.py3-none-any.whl
Collecting alabaster<0.8,>=0.7 (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached alabaster-0.7.10-py2.py3-none-any.whl
Requirement already satisfied: setuptools in ./.tox/docs/lib/python2.7/site-packages (from Sphinx>=1.0->-r /home/bernd/worksp
ace/Mopidy/mopidy/docs/requirements.txt (line 1))
Collecting sphinxcontrib-websupport (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached sphinxcontrib_websupport-1.0.1-py2.py3-none-any.whl
Collecting babel!=2.0,>=1.3 (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached Babel-2.4.0-py2.py3-none-any.whl
Collecting Jinja2>=2.3 (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached Jinja2-2.9.6-py2.py3-none-any.whl
Collecting docutils>=0.11 (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached docutils-0.13.1-py2-none-any.whl
Collecting typing; python_version < "3.5" (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (li
ne 1))
Requirement already satisfied: Pygments>=2.0 in /usr/local/lib/python2.7/dist-packages (from Sphinx>=1.0->-r /home/bernd/work
space/Mopidy/mopidy/docs/requirements.txt (line 1))
Collecting snowballstemmer>=1.1 (from Sphinx>=1.0->-r /home/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
  Using cached snowballstemmer-1.2.1-py2.py3-none-any.whl
Requirement already satisfied: pytz>=0a in /usr/local/lib/python2.7/dist-packages (from babel!=2.0,>=1.3->Sphinx>=1.0->-r /ho
me/bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
Requirement already satisfied: MarkupSafe>=0.23 in /usr/lib/python2.7/dist-packages (from Jinja2>=2.3->Sphinx>=1.0->-r /home/
bernd/workspace/Mopidy/mopidy/docs/requirements.txt (line 1))
Building wheels for collected packages: pygraphviz
  Running setup.py bdist_wheel for pygraphviz: started
  Running setup.py bdist_wheel for pygraphviz: finished with status 'error'
  Complete output from command /home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin/python2.7 -u -c "import setuptools, tokenize
;__file__='/tmp/pip-build-mX2FD3/pygraphviz/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n
', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpOcVcPMpip-wheel- --python-tag cp27:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-2.7
  creating build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/version.py -> build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/agraph.py -> build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/graphviz.py -> build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/__init__.py -> build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/release.py -> build/lib.linux-x86_64-2.7/pygraphviz
  creating build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_drawing.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_html.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_unicode.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/__init__.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_graph.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_layout.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_node_attributes.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_attributes.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_attribute_defaults.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_clear.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_readwrite.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_subgraph.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_string.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  copying pygraphviz/tests/test_edge_attributes.py -> build/lib.linux-x86_64-2.7/pygraphviz/tests
  running egg_info
  writing top-level names to pygraphviz.egg-info/top_level.txt
  writing pygraphviz.egg-info/PKG-INFO
  writing dependency_links to pygraphviz.egg-info/dependency_links.txt
  reading manifest file 'pygraphviz.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no previously-included files matching '*~' found anywhere in distribution
  warning: no previously-included files matching '*.pyc' found anywhere in distribution
  warning: no previously-included files matching '.svn' found anywhere in distribution
  no previously-included directories found matching 'doc/build'
  writing manifest file 'pygraphviz.egg-info/SOURCES.txt'
  copying pygraphviz/graphviz.i -> build/lib.linux-x86_64-2.7/pygraphviz
  copying pygraphviz/graphviz_wrap.c -> build/lib.linux-x86_64-2.7/pygraphviz
  running build_ext
  building 'pygraphviz._graphviz' extension
  creating build/temp.linux-x86_64-2.7
  creating build/temp.linux-x86_64-2.7/pygraphviz
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY
_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c pygraphviz/graphviz_
wrap.c -o build/temp.linux-x86_64-2.7/pygraphviz/graphviz_wrap.o
  pygraphviz/graphviz_wrap.c:2954:29: fatal error: graphviz/cgraph.h: No such file or directory
   #include "graphviz/cgraph.h"
                               ^
  compilation terminated.
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
  
  ----------------------------------------
  Failed building wheel for pygraphviz
  Running setup.py clean for pygraphviz
Failed to build pygraphviz
Installing collected packages: imagesize, alabaster, sphinxcontrib-websupport, babel, Jinja2, docutils, typing, snowballstemm
er, Sphinx, pygraphviz, sphinx-rtd-theme
  Running setup.py install for pygraphviz: started
    Running setup.py install for pygraphviz: finished with status 'error'
    Complete output from command /home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin/python2.7 -u -c "import setuptools, tokeni
ze;__file__='/tmp/pip-build-mX2FD3/pygraphviz/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-5YFetx-record/install-record.txt --sing
le-version-externally-managed --compile --install-headers /home/bernd/workspace/Mopidy/mopidy/.tox/docs/include/site/python2.
7/pygraphviz:
    running install
    Trying pkg-config
    Package libcgraph was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libcgraph.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libcgraph' found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-mX2FD3/pygraphviz/setup.py", line 87, in <module>
        tests_require=['nose>=0.10.1', 'doctest-ignore-unicode>=0.1.0',],
      File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
        dist.run_commands()
      File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "setup_commands.py", line 44, in modified_run
        self.include_path, self.library_path = get_graphviz_dirs()
      File "setup_extra.py", line 121, in get_graphviz_dirs
        include_dirs, library_dirs = _pkg_config()
      File "setup_extra.py", line 44, in _pkg_config
        output = S.check_output(['pkg-config', '--libs-only-L', 'libcgraph'])
      File "/usr/lib/python2.7/subprocess.py", line 574, in check_output
        raise CalledProcessError(retcode, cmd, output=output)
    subprocess.CalledProcessError: Command '['pkg-config', '--libs-only-L', 'libcgraph']' returned non-zero exit status 1
    
    ----------------------------------------
Command "/home/bernd/workspace/Mopidy/mopidy/.tox/docs/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-bu
ild-mX2FD3/pygraphviz/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exe
c(compile(code, __file__, 'exec'))" install --record /tmp/pip-5YFetx-record/install-record.txt --single-version-externally-ma
naged --compile --install-headers /home/bernd/workspace/Mopidy/mopidy/.tox/docs/include/site/python2.7/pygraphviz" failed wit
h error code 1 in /tmp/pip-build-mX2FD3/pygraphviz/

Which in summary bombs because I lack “graphviz/cgraph.h”. OK, so I had a quick look in the apt repos and:

sudo apt install libgraphviz-dev

run tests again and the issue is gone. Tests conclude with:

___________________________________________________ summary ____________________________________________________
  py27: commands succeeded
  py27-tornado32: commands succeeded
  docs: commands succeeded
  flake8: commands succeeded
  congratulations :)

So the apparent observations are:

  1. The pytest issue seems odd. As pytest does indeed appear in dev-requirements.test, perhaps because I already have it installed system wide, pip chose not to install it in the virtualenv? I am not very familiar with virtualenv and how pip works yet I guess, so this may be perfectly fine and expected.

  2. It does seem that this document:

https://docs.mopidy.com/en/latest/devenv

could make mention of the need for:

sudo apt install libgraphviz-dev

which may be system dependent (is not a Windows thing to be sure). Thoughts?

1 Like