20c/vaping

pip dependency conflicts: munge & pluginmgr

stuieordie opened this issue · 5 comments

Python 3.8.5 / pip 21.1.2 running in a virtualenv on Ubuntu

pip install vaping installs the vaping package correctly
pip install vodka produces the below dependency error
pip install graphsrv produces similar dependency error

$ pip install vodka
Collecting vodka
  Using cached vodka-3.0.0-py3-none-any.whl (34 kB)
Collecting munge<2,>=1
  Using cached munge-1.1.0-py3-none-any.whl
Collecting pluginmgr<2,>=1
  Using cached pluginmgr-1.0.1-py3-none-any.whl (9.2 kB)
Collecting tmpl<1,>=0
  Using cached tmpl-0.3.0-py3-none-any.whl
Requirement already satisfied: click in ./lib/python3.8/site-packages (from vodka) (8.0.1)
Requirement already satisfied: requests<3,>=2.6.0 in ./lib/python3.8/site-packages (from munge<2,>=1->vodka) (2.25.1)
Requirement already satisfied: PyYAML>=3.10 in ./lib/python3.8/site-packages (from munge<2,>=1->vodka) (5.4.1)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./lib/python3.8/site-packages (from requests<3,>=2.6.0->munge<2,>=1->vodka) (1.26.5)
Requirement already satisfied: idna<3,>=2.5 in ./lib/python3.8/site-packages (from requests<3,>=2.6.0->munge<2,>=1->vodka) (2.10)
Requirement already satisfied: certifi>=2017.4.17 in ./lib/python3.8/site-packages (from requests<3,>=2.6.0->munge<2,>=1->vodka) (2021.5.30)
Requirement already satisfied: chardet<5,>=3.0.2 in ./lib/python3.8/site-packages (from requests<3,>=2.6.0->munge<2,>=1->vodka) (4.0.0)
Requirement already satisfied: future in ./lib/python3.8/site-packages (from tmpl<1,>=0->vodka) (0.18.2)
Installing collected packages: munge, tmpl, pluginmgr, vodka
  Attempting uninstall: munge
    Found existing installation: munge 0.6.0
    Uninstalling munge-0.6.0:
      Successfully uninstalled munge-0.6.0
  Attempting uninstall: pluginmgr
    Found existing installation: pluginmgr 0.6.0
    Uninstalling pluginmgr-0.6.0:
      Successfully uninstalled pluginmgr-0.6.0
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
vaping 1.3.0 requires munge<1,>=0.6, but you have munge 1.1.0 which is incompatible.
vaping 1.3.0 requires pluginmgr<0.7,>=0.5.0, but you have pluginmgr 1.0.1 which is incompatible.
Successfully installed munge-1.1.0 pluginmgr-1.0.1 tmpl-0.3.0 vodka-3.0.0

trying to start vaping produces this error

$ vaping start --home=examples/standalone_dns/
Traceback (most recent call last):
  File "/home/mstuart/vaping/bin/vaping", line 5, in <module>
    from vaping.cli import cli
  File "/home/mstuart/vaping/lib/python3.8/site-packages/vaping/__init__.py", line 2, in <module>
    from vaping.config import Config
  File "/home/mstuart/vaping/lib/python3.8/site-packages/vaping/config.py", line 3, in <module>
    import munge
  File "/home/mstuart/vaping/lib/python3.8/site-packages/munge/__init__.py", line 7, in <module>
    from .config import Config
  File "/home/mstuart/vaping/lib/python3.8/site-packages/munge/config.py", line 14, in <module>
    class Config(collections.abc.MutableMapping):
  File "/usr/lib/python3.8/collections/__init__.py", line 55, in __getattr__
    raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
AttributeError: module 'collections' has no attribute 'abc'

I also tried installing vaping==1.2.0 vodka==2.3.0 and graphsrv==1.6.1 which didn't produce any installation dependency errors, but did not run

$ vaping start --home=./ --debug
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
pluginmgr hook.compile(vaping.plugins) __init__.py:25
pluginmgr ctor: self._instance={} self._class={} config.py:37
pluginmgr ctor: self._instance={'std_fping': <FPing "std_fping" at 0x7ff310f809d0: _run>} self._class={'fping': <class 'vaping.plugins.fping.FPing'>} config.py:37
PidFile <pid.PidFile object at 0x7ff30f467ca0> entering setup __init__.py:77
PidFile <pid.PidFile object at 0x7ff30f467ca0> create pidfile: /home/mstuart/vaping/vaping/examples/standalone_dns/vaping.pid __init__.py:170
PidFile <pid.PidFile object at 0x7ff30f467ca0> check pidfile: /home/mstuart/vaping/vaping/examples/standalone_dns/vaping.pid __init__.py:157
pluginmgr ctor: self._instance={'std_fping': <FPing "std_fping" at 0x7ff310f809d0: _run>, 'vodka': <VodkaPlugin "vodka" at 0x7ff30f486ae0: _run>} self._class={'fping': <class 'vaping.plugins.fping.FPing'>, 'vodka': <class 'vaping.plugins.vodka.VodkaPlugin'>} config.py:37
pluginmgr hook.namespace vaping.plugins __init__.py:44
pluginmgr hook.find(zmq, None) loader=0 __init__.py:45
pluginmgr match None __init__.py:54
pluginmgr hook.namespace vaping.plugins __init__.py:44
pluginmgr hook.find(simplejson, None) loader=0 __init__.py:45
pluginmgr match None __init__.py:54
pluginmgr hook.namespace vaping.plugins __init__.py:44
pluginmgr hook.find(blinker, None) loader=0 __init__.py:45
pluginmgr match None __init__.py:54
pluginmgr hook.namespace vaping.plugins __init__.py:44
pluginmgr hook.find(dotenv, None) loader=0 __init__.py:45
pluginmgr match None __init__.py:54
pluginmgr hook.namespace vaping.plugins __init__.py:44
pluginmgr hook.find(simplejson, None) loader=0 __init__.py:45
pluginmgr match None __init__.py:54
vodka making sure configuration is sane ... log.py:39
vodka [config unknown] 'name is not a known configuration variable and has been ignored' log.py:66
vodka [config unknown] 'type is not a known configuration variable and has been ignored' log.py:66
vodka instantiating data types log.py:39
vodka instantiating plugins log.py:39
pluginmgr ctor: self._instance={} self._class={'zeromq_probe': <class 'vodka.plugins.zeromq.ZeroMQ'>, 'flask': <class 'vodka.plugins.flask.VodkaFlask'>} config.py:37
vodka instantiating applications log.py:39
vodka starting plugins log.py:39
vodka starting http .. log.py:39
Segmentation fault (core dumped)
vegu commented

Hi @stuieordie - thanks for the report.

We will be doing a release soon that should address this.

For the time being you could try installing the current master (with latest vodka / graphsrv)

pip install https://github.com/20c/vaping/archive/refs/heads/master.zip

Thanks @vegu for the quick response. The pip installation from master.zip worked, but I'm getting an error ValueError: unknown plugin 'fping' - I do have the fping utility installed.

grizz commented

Hrm, @stuieordie could verify you updated vodka and graphsrv (pip install -U vodka graphsrv) and give a full trace of that error?

Thanks!

Hi @grizz - thanks I missed the installation of vodka and graphsrv, thought I still had it in the virtualenv from before. Looking good now.

grizz commented

Good to hear!

That version will be released soon as 1.4