Iβm developing a package recursion-visualizer with nbdev2
. Although all of the packages used to develop recursion-visualizer
work in my mamba environment, when I push my code to github the Deploy to Github Pages and CI actions both fail.
The Details
My package recursion-visualizer
uses the package pygraphviz, a Python interface to the Graphviz graph visualization package. I included pygraphviz
in requirements
of settings.ini
:
Yet when I push to my github repository, the Deploy to Github Pages action failed with the error (scroll down to see the error):
Run fastai/workflows/quarto-ghp@master
Run actions/checkout@v3
Syncing repository: ez2rok/recursion-visualizer
Getting Git version info
Temporarily overriding HOME='/home/runner/work/_temp/d6a[4](https://github.com/ez2rok/recursion-visualizer/runs/8295002784?check_suite_focus=true#step:2:5)7fed-b8df-49d9-9659-ae5a25a584d5' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
/usr/bin/git config --global --add safe.directory /home/runner/work/recursion-visualizer/recursion-visualizer
Deleting the contents of '/home/runner/work/recursion-visualizer/recursion-visualizer'
Initializing the repository
Disabling automatic garbage collection
Setting up auth
Fetching the repository
Determining the checkout info
Checking out the ref
/usr/bin/git log -1 --format='%H'
'c200a38885d75cb1dd78be8943a2f6eaf46ff54e'
Run actions/setup-python@v3
Successfully setup CPython (3.10.6)
Run python -m pip install --upgrade pip
Requirement already satisfied: pip in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (22.2.2)
Obtaining file:///home/runner/work/recursion-visualizer/recursion-visualizer
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Collecting networkx>=2.8.6
Downloading networkx-2.8.6-py3-none-any.whl (2.0 MB)
ββββββββββββββββββββββββββββββββββββββββ 2.0/2.0 MB 50.5 MB/s eta 0:00:00
Collecting plotly>=5.10.0
Downloading plotly-5.10.0-py2.py3-none-any.whl ([15](https://github.com/ez2rok/recursion-visualizer/runs/8295002784?check_suite_focus=true#step:2:17).2 MB)
ββββββββββββββββββββββββββββββββββββββββ 15.2/15.2 MB 75.6 MB/s eta 0:00:00
Collecting pygraphviz>=1.10
Downloading pygraphviz-1.10.zip (120 kB)
ββββββββββββββββββββββββββββββββββββββ 120.6/120.6 kB 34.5 MB/s eta 0:00:00
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: fastcore>=1.5.22 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from recursion-visualizer==0.0.1) (1.5.26)
Requirement already satisfied: nbdev>=2.2.8 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from recursion-visualizer==0.0.1) (2.2.10)
Requirement already satisfied: pip in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from fastcore>=1.5.22->recursion-visualizer==0.0.1) (22.2.2)
Requirement already satisfied: packaging in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from fastcore>=1.5.22->recursion-visualizer==0.0.1) (21.3)
Requirement already satisfied: execnb>=0.1.2 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.1.3)
Requirement already satisfied: PyYAML in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from nbdev>=2.2.8->recursion-visualizer==0.0.1) (6.0)
Requirement already satisfied: ghapi>=1.0.2 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from nbdev>=2.2.8->recursion-visualizer==0.0.1) (1.0.2)
Requirement already satisfied: astunparse in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from nbdev>=2.2.8->recursion-visualizer==0.0.1) (1.6.3)
Collecting tenacity>=6.2.0
Downloading tenacity-8.0.1-py3-none-any.whl (24 kB)
Requirement already satisfied: ipython in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (8.5.0)
Requirement already satisfied: wheel<1.0,>=0.23.0 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from astunparse->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.37.1)
Requirement already satisfied: six<2.0,>=1.6.1 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from astunparse->nbdev>=2.2.8->recursion-visualizer==0.0.1) (1.[16](https://github.com/ez2rok/recursion-visualizer/runs/8295002784?check_suite_focus=true#step:2:18).0)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from packaging->fastcore>=1.5.[22](https://github.com/ez2rok/recursion-visualizer/runs/8295002784?check_suite_focus=true#step:2:25)->recursion-visualizer==0.0.1) (3.0.9)
Requirement already satisfied: decorator in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (5.1.1)
Requirement already satisfied: pygments>=2.4.0 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (2.13.0)
Requirement already satisfied: pexpect>4.3 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (4.8.0)
Requirement already satisfied: prompt-toolkit<3.1.0,>3.0.1 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (3.0.31)
Requirement already satisfied: backcall in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.2.0)
Requirement already satisfied: pickleshare in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.7.5)
Requirement already satisfied: stack-data in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.5.0)
Requirement already satisfied: traitlets>=5 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (5.3.0)
Requirement already satisfied: jedi>=0.16 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.18.1)
Requirement already satisfied: matplotlib-inline in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.1.6)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from jedi>=0.16->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.8.3)
Requirement already satisfied: ptyprocess>=0.5 in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from pexpect>4.3->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.7.0)
Requirement already satisfied: wcwidth in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from prompt-toolkit<3.1.0,>3.0.1->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.2.5)
Requirement already satisfied: asttokens in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from stack-data->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (2.0.8)
Requirement already satisfied: pure-eval in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from stack-data->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.2.2)
Requirement already satisfied: executing in /opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages (from stack-data->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (1.0.0)
Building wheels for collected packages: pygraphviz
Building wheel for pygraphviz (setup.py): started
Building wheel for pygraphviz (setup.py): finished with status 'error'
error: subprocess-exited-with-error
Running setup.py clean for pygraphviz
Γ python setup.py bdist_wheel did not run successfully.
β exit code: 1
β°β> [55 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-310
creating build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/testing.py -> build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/agraph.py -> build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/scraper.py -> build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/graphviz.py -> build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/__init__.py -> build/lib.linux-x86_64-cpython-310/pygraphviz
creating build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_edge_attributes.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_node_attributes.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_attribute_defaults.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_close.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_layout.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_graph.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_string.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_html.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_scraper.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_readwrite.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_clear.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_unicode.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_repr_mimebundle.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_drawing.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_subgraph.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/__init__.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
running egg_info
writing pygraphviz.egg-info/PKG-INFO
writing dependency_links to pygraphviz.egg-info/dependency_links.txt
writing top-level names to pygraphviz.egg-info/top_level.txt
reading manifest file 'pygraphviz.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.png' under directory 'doc'
warning: no files found matching '*.txt' under directory 'doc'
warning: no files found matching '*.css' under directory 'doc'
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'
adding license file 'LICENSE'
writing manifest file 'pygraphviz.egg-info/SOURCES.txt'
copying pygraphviz/graphviz.i -> build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/graphviz_wrap.c -> build/lib.linux-x86_64-cpython-310/pygraphviz
running build_ext
building 'pygraphviz._graphviz' extension
creating build/temp.linux-x86_64-cpython-310
creating build/temp.linux-x86_64-cpython-310/pygraphviz
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DSWIG_PYTHON_STRICT_BYTE_CHAR -I/opt/hostedtoolcache/Python/3.10.6/x64/include/python3.10 -c pygraphviz/graphviz_wrap.c -o build/temp.linux-x86_64-cpython-310/pygraphviz/graphviz_wrap.o
pygraphviz/graphviz_wrap.c:2711:10: fatal error: graphviz/cgraph.h: No such file or directory
2711 | #include "graphviz/cgraph.h"
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pygraphviz
Failed to build pygraphviz
Installing collected packages: tenacity, pygraphviz, networkx, plotly, recursion-visualizer
Running setup.py install for pygraphviz: started
Running setup.py install for pygraphviz: finished with status 'error'
error: subprocess-exited-with-error
Γ Running setup.py install for pygraphviz did not run successfully.
β exit code: 1
β°β> [57 lines of output]
running install
/opt/hostedtoolcache/Python/3.10.6/x64/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-310
creating build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/testing.py -> build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/agraph.py -> build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/scraper.py -> build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/graphviz.py -> build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/__init__.py -> build/lib.linux-x86_64-cpython-310/pygraphviz
creating build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_edge_attributes.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_node_attributes.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_attribute_defaults.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_close.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_layout.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_graph.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_string.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_html.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_scraper.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_readwrite.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_clear.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_unicode.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_repr_mimebundle.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_drawing.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/test_subgraph.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
copying pygraphviz/tests/__init__.py -> build/lib.linux-x86_64-cpython-310/pygraphviz/tests
running egg_info
writing pygraphviz.egg-info/PKG-INFO
writing dependency_links to pygraphviz.egg-info/dependency_links.txt
writing top-level names to pygraphviz.egg-info/top_level.txt
reading manifest file 'pygraphviz.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.png' under directory 'doc'
warning: no files found matching '*.txt' under directory 'doc'
warning: no files found matching '*.css' under directory 'doc'
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'
adding license file 'LICENSE'
writing manifest file 'pygraphviz.egg-info/SOURCES.txt'
copying pygraphviz/graphviz.i -> build/lib.linux-x86_64-cpython-310/pygraphviz
copying pygraphviz/graphviz_wrap.c -> build/lib.linux-x86_64-cpython-310/pygraphviz
running build_ext
building 'pygraphviz._graphviz' extension
creating build/temp.linux-x86_64-cpython-310
creating build/temp.linux-x86_64-cpython-310/pygraphviz
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DSWIG_PYTHON_STRICT_BYTE_CHAR -I/opt/hostedtoolcache/Python/3.10.6/x64/include/python3.10 -c pygraphviz/graphviz_wrap.c -o build/temp.linux-x86_64-cpython-310/pygraphviz/graphviz_wrap.o
pygraphviz/graphviz_wrap.c:[271](https://github.com/ez2rok/recursion-visualizer/runs/8295002784?check_suite_focus=true#step:2:282)1:10: fatal error: graphviz/cgraph.h: No such file or directory
2711 | #include "graphviz/cgraph.h"
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
Γ Encountered error while trying to install package.
β°β> pygraphviz
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
Error: Process completed with exit code 1.
and the CI action failed with the error (scroll down to see error)
12s
Run fastai/workflows/nbdev-ci@master
Run actions/checkout@v3
Syncing repository: ez2rok/recursion-visualizer
Getting Git version info
Temporarily overriding HOME='/home/runner/work/_temp/fc64fc57-c825-4438-aa80-[1](https://github.com/ez2rok/recursion-visualizer/runs/8295002783?check_suite_focus=true#step:2:1)6f90b775c[4](https://github.com/ez2rok/recursion-visualizer/runs/8295002783?check_suite_focus=true#step:2:5)f' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
/usr/bin/git config --global --add safe.directory /home/runner/work/recursion-visualizer/recursion-visualizer
Deleting the contents of '/home/runner/work/recursion-visualizer/recursion-visualizer'
Initializing the repository
Disabling automatic garbage collection
Setting up auth
Fetching the repository
Determining the checkout info
Checking out the ref
/usr/bin/git log -1 --format='%H'
'c200a38885d75cb1dd78be8943a2f6eaf46ff54e'
Run actions/setup-python@v3
Successfully setup CPython (3.9.13)
/opt/hostedtoolcache/Python/3.9.13/x64/bin/pip cache dir
/home/runner/.cache/pip
pip cache is not found
Run python -m pip install --upgrade pip
Requirement already satisfied: pip in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (22.2.2)
Collecting nbdev
Downloading nbdev-2.2.10-py3-none-any.whl (61 kB)
ββββββββββββββββββββββββββββββββββββββββ 62.0/62.0 kB 14.8 MB/s eta 0:00:00
Collecting PyYAML
Downloading PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (661 kB)
ββββββββββββββββββββββββββββββββββββββ 661.8/661.8 kB 74.9 MB/s eta 0:00:00
Collecting astunparse
Downloading astunparse-1.6.3-py2.py3-none-any.whl (12 kB)
Collecting fastcore>=1.5.24
Downloading fastcore-1.5.26-py3-none-any.whl (67 kB)
ββββββββββββββββββββββββββββββββββββββββ 67.1/67.1 kB 12.5 MB/s eta 0:00:00
Collecting ghapi>=1.0.2
Downloading ghapi-1.0.2-py3-none-any.whl (57 kB)
ββββββββββββββββββββββββββββββββββββββββ 57.7/57.7 kB 21.1 MB/s eta 0:00:00
Collecting execnb>=0.1.2
Downloading execnb-0.1.3-py3-none-any.whl (13 kB)
Collecting ipython
Downloading ipython-8.5.0-py3-none-any.whl (752 kB)
ββββββββββββββββββββββββββββββββββββββ 752.0/752.0 kB 66.8 MB/s eta 0:00:00
Collecting packaging
Downloading packaging-21.3-py3-none-any.whl (40 kB)
ββββββββββββββββββββββββββββββββββββββββ 40.8/40.8 kB 12.6 MB/s eta 0:00:00
Requirement already satisfied: pip in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from fastcore>=1.5.24->nbdev) (22.2.2)
Collecting six<2.0,>=1.6.1
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting wheel<1.0,>=0.23.0
Downloading wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Collecting matplotlib-inline
Downloading matplotlib_inline-0.1.6-py3-none-any.whl (9.4 kB)
Collecting backcall
Downloading backcall-0.2.0-py2.py3-none-any.whl (11 kB)
Collecting pygments>=2.4.0
Downloading Pygments-2.13.0-py3-none-any.whl (1.1 MB)
ββββββββββββββββββββββββββββββββββββββββ 1.1/1.1 MB 81.8 MB/s eta 0:00:00
Collecting stack-data
Downloading stack_data-0.5.0-py3-none-any.whl (24 kB)
Collecting decorator
Downloading decorator-5.1.1-py3-none-any.whl (9.1 kB)
Collecting jedi>=0.16
Downloading jedi-0.18.1-py2.py3-none-any.whl (1.6 MB)
ββββββββββββββββββββββββββββββββββββββββ 1.6/1.6 MB 98.3 MB/s eta 0:00:00
Collecting prompt-toolkit<3.1.0,>3.0.1
Downloading prompt_toolkit-3.0.31-py3-none-any.whl (382 kB)
ββββββββββββββββββββββββββββββββββββββ 382.3/382.3 kB 71.4 MB/s eta 0:00:00
Collecting traitlets>=5
Downloading traitlets-5.3.0-py3-none-any.whl (106 kB)
ββββββββββββββββββββββββββββββββββββββ 106.8/106.8 kB 31.3 MB/s eta 0:00:00
Collecting pexpect>4.3
Downloading pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
ββββββββββββββββββββββββββββββββββββββββ 59.0/59.0 kB 21.4 MB/s eta 0:00:00
Collecting pickleshare
Downloading pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
Collecting pyparsing!=3.0.5,>=2.0.2
Downloading pyparsing-3.0.9-py3-none-any.whl (98 kB)
ββββββββββββββββββββββββββββββββββββββββ 98.3/98.3 kB 30.3 MB/s eta 0:00:00
Collecting parso<0.9.0,>=0.8.0
Downloading parso-0.8.3-py2.py3-none-any.whl (100 kB)
ββββββββββββββββββββββββββββββββββββββ 100.8/100.8 kB 30.0 MB/s eta 0:00:00
Collecting ptyprocess>=0.5
Downloading ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Collecting wcwidth
Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
Collecting asttokens
Downloading asttokens-2.0.8-py2.py3-none-any.whl (23 kB)
Collecting pure-eval
Downloading pure_eval-0.2.2-py3-none-any.whl (11 kB)
Collecting executing
Downloading executing-1.0.0-py2.py3-none-any.whl (16 kB)
Installing collected packages: wcwidth, pure-eval, ptyprocess, pickleshare, executing, backcall, wheel, traitlets, six, PyYAML, pyparsing, pygments, prompt-toolkit, pexpect, parso, decorator, packaging, matplotlib-inline, jedi, astunparse, asttokens, stack-data, fastcore, ipython, ghapi, execnb, nbdev
Successfully installed PyYAML-6.0 asttokens-2.0.8 astunparse-1.6.3 backcall-0.2.0 decorator-5.1.1 execnb-0.1.3 executing-1.0.0 fastcore-1.5.26 ghapi-1.0.2 ipython-8.5.0 jedi-0.18.1 matplotlib-inline-0.1.6 nbdev-2.2.10 packaging-21.3 parso-0.8.3 pexpect-4.8.0 pickleshare-0.7.5 prompt-toolkit-3.0.31 ptyprocess-0.7.0 pure-eval-0.2.2 pygments-2.13.0 pyparsing-3.0.9 six-1.16.0 stack-data-0.5.0 traitlets-5.3.0 wcwidth-0.2.5 wheel-0.37.1
Doing editable install...
Obtaining file:///home/runner/work/recursion-visualizer/recursion-visualizer
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Collecting networkx>=2.8.6
Downloading networkx-2.8.6-py3-none-any.whl (2.0 MB)
ββββββββββββββββββββββββββββββββββββββββ 2.0/2.0 MB 83.0 MB/s eta 0:00:00
Collecting plotly>=5.10.0
Downloading plotly-5.10.0-py2.py3-none-any.whl ([15](https://github.com/ez2rok/recursion-visualizer/runs/8295002783?check_suite_focus=true#step:2:17).2 MB)
ββββββββββββββββββββββββββββββββββββββββ 15.2/15.2 MB 95.0 MB/s eta 0:00:00
Collecting pygraphviz>=1.10
Downloading pygraphviz-1.10.zip (120 kB)
ββββββββββββββββββββββββββββββββββββββ 120.6/120.6 kB 22.0 MB/s eta 0:00:00
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: fastcore>=1.5.22 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from recursion-visualizer==0.0.1) (1.5.26)
Requirement already satisfied: nbdev>=2.2.8 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from recursion-visualizer==0.0.1) (2.2.10)
Requirement already satisfied: packaging in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from fastcore>=1.5.22->recursion-visualizer==0.0.1) (21.3)
Requirement already satisfied: pip in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from fastcore>=1.5.22->recursion-visualizer==0.0.1) (22.2.2)
Requirement already satisfied: astunparse in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from nbdev>=2.2.8->recursion-visualizer==0.0.1) (1.6.3)
Requirement already satisfied: PyYAML in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from nbdev>=2.2.8->recursion-visualizer==0.0.1) (6.0)
Requirement already satisfied: execnb>=0.1.2 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.1.3)
Requirement already satisfied: ghapi>=1.0.2 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from nbdev>=2.2.8->recursion-visualizer==0.0.1) (1.0.2)
Collecting tenacity>=6.2.0
Downloading tenacity-8.0.1-py3-none-any.whl (24 kB)
Requirement already satisfied: ipython in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (8.5.0)
Requirement already satisfied: six<2.0,>=1.6.1 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from astunparse->nbdev>=2.2.8->recursion-visualizer==0.0.1) (1.[16](https://github.com/ez2rok/recursion-visualizer/runs/8295002783?check_suite_focus=true#step:2:18).0)
Requirement already satisfied: wheel<1.0,>=0.23.0 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from astunparse->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.37.1)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from packaging->fastcore>=1.5.[22](https://github.com/ez2rok/recursion-visualizer/runs/8295002783?check_suite_focus=true#step:2:25)->recursion-visualizer==0.0.1) (3.0.9)
Requirement already satisfied: pygments>=2.4.0 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (2.13.0)
Requirement already satisfied: pexpect>4.3 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (4.8.0)
Requirement already satisfied: stack-data in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.5.0)
Requirement already satisfied: backcall in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.2.0)
Requirement already satisfied: matplotlib-inline in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.1.6)
Requirement already satisfied: jedi>=0.16 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.18.1)
Requirement already satisfied: decorator in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (5.1.1)
Requirement already satisfied: pickleshare in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.7.5)
Requirement already satisfied: prompt-toolkit<3.1.0,>3.0.1 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (3.0.31)
Requirement already satisfied: traitlets>=5 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (5.3.0)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from jedi>=0.16->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.8.3)
Requirement already satisfied: ptyprocess>=0.5 in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from pexpect>4.3->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.7.0)
Requirement already satisfied: wcwidth in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from prompt-toolkit<3.1.0,>3.0.1->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.2.5)
Requirement already satisfied: pure-eval in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from stack-data->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (0.2.2)
Requirement already satisfied: asttokens in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from stack-data->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (2.0.8)
Requirement already satisfied: executing in /opt/hostedtoolcache/Python/3.9.13/x64/lib/python3.9/site-packages (from stack-data->ipython->execnb>=0.1.2->nbdev>=2.2.8->recursion-visualizer==0.0.1) (1.0.0)
Building wheels for collected packages: pygraphviz
Building wheel for pygraphviz (setup.py): started
Building wheel for pygraphviz (setup.py): finished with status 'error'
error: subprocess-exited-with-error
Γ python setup.py bdist_wheel did not run successfully.
β exit code: 1
β°β> [55 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/testing.py -> build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/agraph.py -> build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/scraper.py -> build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/graphviz.py -> build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/__init__.py -> build/lib.linux-x86_64-3.9/pygraphviz
creating build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_edge_attributes.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_node_attributes.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_attribute_defaults.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_close.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_layout.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_graph.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_string.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_html.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_scraper.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_readwrite.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_clear.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_unicode.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_repr_mimebundle.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_drawing.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_subgraph.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/__init__.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
running egg_info
writing pygraphviz.egg-info/PKG-INFO
writing dependency_links to pygraphviz.egg-info/dependency_links.txt
writing top-level names to pygraphviz.egg-info/top_level.txt
reading manifest file 'pygraphviz.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.png' under directory 'doc'
warning: no files found matching '*.txt' under directory 'doc'
warning: no files found matching '*.css' under directory 'doc'
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'
adding license file 'LICENSE'
writing manifest file 'pygraphviz.egg-info/SOURCES.txt'
copying pygraphviz/graphviz.i -> build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/graphviz_wrap.c -> build/lib.linux-x86_64-3.9/pygraphviz
running build_ext
building 'pygraphviz._graphviz' extension
creating build/temp.linux-x86_64-3.9
creating build/temp.linux-x86_64-3.9/pygraphviz
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DSWIG_PYTHON_STRICT_BYTE_CHAR -I/opt/hostedtoolcache/Python/3.9.13/x64/include/python3.9 -c pygraphviz/graphviz_wrap.c -o build/temp.linux-x86_64-3.9/pygraphviz/graphviz_wrap.o
pygraphviz/graphviz_wrap.c:[271](https://github.com/ez2rok/recursion-visualizer/runs/8295002783?check_suite_focus=true#step:2:282)1:10: fatal error: graphviz/cgraph.h: No such file or directory
2711 | #include "graphviz/cgraph.h"
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pygraphviz
Running setup.py clean for pygraphviz
Failed to build pygraphviz
Installing collected packages: tenacity, pygraphviz, networkx, plotly, recursion-visualizer
Running setup.py install for pygraphviz: started
Running setup.py install for pygraphviz: finished with status 'error'
error: subprocess-exited-with-error
Γ Running setup.py install for pygraphviz did not run successfully.
β exit code: 1
β°β> [55 lines of output]
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/testing.py -> build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/agraph.py -> build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/scraper.py -> build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/graphviz.py -> build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/__init__.py -> build/lib.linux-x86_64-3.9/pygraphviz
creating build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_edge_attributes.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_node_attributes.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_attribute_defaults.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_close.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_layout.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_graph.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_string.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_html.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_scraper.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_readwrite.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_clear.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_unicode.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_repr_mimebundle.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_drawing.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/test_subgraph.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
copying pygraphviz/tests/__init__.py -> build/lib.linux-x86_64-3.9/pygraphviz/tests
running egg_info
writing pygraphviz.egg-info/PKG-INFO
writing dependency_links to pygraphviz.egg-info/dependency_links.txt
writing top-level names to pygraphviz.egg-info/top_level.txt
reading manifest file 'pygraphviz.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.png' under directory 'doc'
warning: no files found matching '*.txt' under directory 'doc'
warning: no files found matching '*.css' under directory 'doc'
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'
adding license file 'LICENSE'
writing manifest file 'pygraphviz.egg-info/SOURCES.txt'
copying pygraphviz/graphviz.i -> build/lib.linux-x86_64-3.9/pygraphviz
copying pygraphviz/graphviz_wrap.c -> build/lib.linux-x86_64-3.9/pygraphviz
running build_ext
building 'pygraphviz._graphviz' extension
creating build/temp.linux-x86_64-3.9
creating build/temp.linux-x86_64-3.9/pygraphviz
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DSWIG_PYTHON_STRICT_BYTE_CHAR -I/opt/hostedtoolcache/Python/3.9.13/x64/include/python3.9 -c pygraphviz/graphviz_wrap.c -o build/temp.linux-x86_64-3.9/pygraphviz/graphviz_wrap.o
pygraphviz/graphviz_wrap.c:2711:10: fatal error: graphviz/cgraph.h: No such file or directory
2711 | #include "graphviz/cgraph.h"
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
Γ Encountered error while trying to install package.
β°β> pygraphviz
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
Error: Process completed with exit code 1.
Both errors say that the file graphviz/cgraph.h
does not exist when trying to create the file settings.py
. Yet in my mamba
environment I have the file cgraph.h
:
It seems that although I have cgraph.h
installed in my mamba environment, just putting pygraphviz
in requirements
doesnβt cause cgraph.h
to be installed in my nbdev
package.
What Iβve Tried
- I tried uninstalling and reinstalling
pygraphviz
in my mamba environment. This did not change anything. - I made sure Iβm actually running my code in
recrsion-visualizer
, the environment wherepygraphviz
is installed. - I tried explicitly including
graphviz
inrequirements
ofsettings.ini
. Again, this did not change the error message. - I referenced the instructions for installing pygraphviz here. However, I seem to be following everything that is there.
My Questions
- Are there any other packages I could include in the
requirements
ofsettings.ini
to make this work? - Is the error here due to
nbdev
or due to the packagepygraphviz
? It seems to be withnbdev
becausepygraphviz
works 100% fine in my mamba environment but I donβt know for sure? - The Github comments here and here suggest that ways to resolve this issue is by installing
graphviz
with special commands such as
python setup.py install --include-path=/usr/local/Cellar/graphviz/2.38.0/include --library-path=/usr/local/Cellar/graphviz/2.38.0/lib
and
pip install --global-option=build_ext --global-option="-I/usr/local/Cellar/graphviz/2.38.0/include/" --global-option="-L/usr/local/Cellar/graphviz/2.38.0/lib/" pygraphviz
respectively. How can I include special installation options in requirements
in settings.ini
?
5. Is there a way to directly takes the packages in a conda/mamba environment (eg: from an environment.yml
file) and place them in the requirements
of settings.ini
? This kind of feature might be able to resolve my issue and could generally be helpful for future users. I mentioned such a feature in #1008. @michaelaye provided a script that turns a settings.ini
into an environment.yml
file. However, I am suggesting adding a feature that does the opposite: turn an environment.yml
file into a settings.ini
file.
The Specs
Iβm writing my code in VSCode 1.71.0 with a mamba-forge wrapper around a conda 4.14.0 environment. Iβm using python 3.10.6 and nbdev 2.2.8.
Update
I posted this question on github here and Jeremy said:
The error here is due to your GH Actions env not having what it needs to build pygraphviz. Since it's not an nbdev issue, I'll close this issue, but feel free to ask for help on our Discord or forums.
Does anyone know how to modify a Github Actions environment or has encountered a similar issue before? And do you know how to modify the GitHub Actions environment to fix this?
Thanks!