nix-community / pypi2nix

Abandoned! Generate Nix expressions for Python packages
194 stars 47 forks source link

Neither Automat nor linecache2 can be built with pypi2nix #136

Closed exarkun closed 7 years ago

exarkun commented 7 years ago
$ pypi2nix --python-version 2.7 -e automat
...
$ nix-shell requirements.nix -A interpreter
...
Traceback (most recent call last):
  File "nix_run_setup.py", line 8, in <module>
    exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\\r\\n', '\\n'), __file__, 'exec'))
  File "setup.py", line 46, in <module>
    keywords='fsm finite state machine automata',
  File "/nix/store/ci2hhzxxhxdilhvk3rmrzivygjma86mm-python-2.7.13/lib/python2.7/distutils/core.py", line 111, in setup
    _setup_distribution = dist = klass(attrs)
  File "/nix/store/hgzsk9ck4ycpsw16b35z002in7x9aqxm-python2.7-bootstrapped-pip-9.0.1/lib/python2.7/site-packages/setuptools/dist.py", line 315, in __init__
    self.fetch_build_eggs(attrs['setup_requires'])
  File "/nix/store/hgzsk9ck4ycpsw16b35z002in7x9aqxm-python2.7-bootstrapped-pip-9.0.1/lib/python2.7/site-packages/setuptools/dist.py", line 361, in fetch_build_eggs
    replace_conflicting=True,
  File "/nix/store/hgzsk9ck4ycpsw16b35z002in7x9aqxm-python2.7-bootstrapped-pip-9.0.1/lib/python2.7/site-packages/pkg_resources/__init__.py", line 846, in resolve
    dist = best[req.key] = env.best_match(req, ws, installer)
  File "/nix/store/hgzsk9ck4ycpsw16b35z002in7x9aqxm-python2.7-bootstrapped-pip-9.0.1/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1118, in best_match
    return self.obtain(req, installer)
  File "/nix/store/hgzsk9ck4ycpsw16b35z002in7x9aqxm-python2.7-bootstrapped-pip-9.0.1/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1130, in obtain
    return installer(requirement)
  File "/nix/store/hgzsk9ck4ycpsw16b35z002in7x9aqxm-python2.7-bootstrapped-pip-9.0.1/lib/python2.7/site-packages/setuptools/dist.py", line 429, in fetch_build_egg
    return cmd.easy_install(req)
  File "/nix/store/hgzsk9ck4ycpsw16b35z002in7x9aqxm-python2.7-bootstrapped-pip-9.0.1/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 659, in easy_install
    raise DistutilsError(msg)
distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('m2r')

Automat setup_requires m2r and setuptools-scm but pypi2nix doesn't appear to notice so doesn't include these in the closure (?).

garbas commented 7 years ago

I'm closing this since it has been discussed many times. no solution is currently available since this information is not available in metadata.json of the wheel we generate.

If somebody want to look into this please start looking how we can include info in pip/setuptools