Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

assert newdist is not None # newloc above is missing our dist?! #451

Closed
papachoco opened this issue May 6, 2018 · 4 comments
Closed

assert newdist is not None # newloc above is missing our dist?! #451

papachoco opened this issue May 6, 2018 · 4 comments

Comments

@papachoco
Copy link

I am getting the error below while installing nltk. The egg is actually retrieved so the second time the recipe is run, it completes successfully.

FWIW doing easy_install-2.7 -U nltk works fine.

Carlos

I am running the latest setuptools

Getting distribution for 'nltk==3.3.0'.
warning: no files found matching 'README.txt'
warning: no files found matching 'Makefile' under directory '.txt'
warning: no previously-included files matching '
~' found anywhere in distribution
While:
Installing eggs.
Getting distribution for 'nltk==3.3.0'.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
File "/home/ntiuser/buildout/eggs/zc.buildout-2.11.3-py2.7.egg/zc/buildout/buildout.py", line 2127, in main
getattr(buildout, command)(args)
File "/home/ntiuser/buildout/eggs/zc.buildout-2.11.3-py2.7.egg/zc/buildout/buildout.py", line 797, in install
installed_files = self[part]._call(recipe.install)
File "/home/ntiuser/buildout/eggs/zc.buildout-2.11.3-py2.7.egg/zc/buildout/buildout.py", line 1557, in _call
return f()
File "/home/ntiuser/buildout/eggs/zc.recipe.egg-2.0.5-py2.7.egg/zc/recipe/egg/egg.py", line 221, in install
reqs, ws = self.working_set()
File "/home/ntiuser/buildout/eggs/zc.recipe.egg-2.0.5-py2.7.egg/zc/recipe/egg/egg.py", line 84, in working_set
allow_hosts=self.allow_hosts,
File "/home/ntiuser/buildout/eggs/zc.recipe.egg-2.0.5-py2.7.egg/zc/recipe/egg/egg.py", line 162, in _working_set
allow_hosts=allow_hosts)
File "/home/ntiuser/buildout/eggs/zc.buildout-2.11.3-py2.7.egg/zc/buildout/easy_install.py", line 924, in install
return installer.install(specs, working_set)
File "/home/ntiuser/buildout/eggs/zc.buildout-2.11.3-py2.7.egg/zc/buildout/easy_install.py", line 726, in install
for dist in self._get_dist(req, ws):
File "/home/ntiuser/buildout/eggs/zc.buildout-2.11.3-py2.7.egg/zc/buildout/easy_install.py", line 570, in _get_dist
dists = [_move_to_eggs_dir_and_compile(dist, self._dest)]
File "/home/ntiuser/buildout/eggs/zc.buildout-2.11.3-py2.7.egg/zc/buildout/easy_install.py", line 1735, in _move_to_eggs_dir_and_compile
assert newdist is not None # newloc above is missing our dist?!

@jamadden
Copy link
Contributor

jamadden commented May 6, 2018

The version number of nltk is '3.3', not '3.3.0'. Have you tried using that as the version pin? PyPI's normalization rules would automatically do the conversion so you can request either, IIRC, but the sdist unzips to nltk-3.3/

It's setup.py looks pretty standard, it uses setuptools.setup and find_packages, it doesn't have an C extensions or custom build commands.

It's distributed as a .zip file, not a '.tar.gz', which is becoming unusual (and I thought was actually deprecated).

@papachoco
Copy link
Author

Thanks Jason,

Sadly pinning to 3.3 did not work. it resulted in the same issue.

Carlos

@jamadden
Copy link
Contributor

jamadden commented May 6, 2018

I can reproduce this with zc.buildout installed in a fresh virtualenv using this configuration:

[buildout]
parts = eggs

[eggs]
recipe = zc.recipe.egg
eggs = nltk

[versions]
nltk = 3.3
$ buildout -vvv

 buildout -vvv
Installing 'zc.buildout', 'setuptools'.
We have a develop egg: zc.buildout 2.11.3
We have a develop egg: setuptools 39.1.0

Configuration data:
...

[versions]
nltk = 3.3
zc.buildout = >=2.11.3
zc.recipe.egg = >=2.0.0a3

...
Installing eggs.
Installing 'nltk'.
We have no distributions for nltk that satisfies 'nltk==3.3'.
Getting distribution for 'nltk==3.3'.
Fetching nltk 3.3.0 from: https://files.pythonhosted.org/packages/50/09/3b1755d528ad9156ee7243d52aa5cd2b809ef053a0f31b53d92853dd653a/nltk-3.3.0.zip#sha256=fe0eda251be65843be86d7de9abfbf7161732256f742e623b21243ec47bdb718
Running easy_install:
...

Processing nltk-3.3.0.zip
Unpacking nltk-3.3/INSTALL.txt to /var/folders/y5/x7pvzk651c3dqkllbxd1jd28
...
Unpacking nltk-3.3/nltk.egg-info/top_level.txt to /var/folders/y5/x7pvzk651c3dqkllbxd1jd280000gn/T/easy_install-bQ1bGd/nltk-3.3/nltk.egg-info/top_level.txt
Reading configuration from /var/folders/y5/x7pvzk651c3dqkllbxd1jd280000gn/T/easy_install-bQ1bGd/nltk-3.3/setup.cfg
...
copying nltk/jsontags.py -> build/lib/nltk
...
byte-compiling build/bdist.macosx-10.13-x86_64/egg/nltk/jsontags.py to jsontags.pyc
byte-compiling build/bdist.macosx-10.13-x86_64/egg/nltk/misc/wordfinder.py to wordfinder.pyc
...
creating '/var/folders/y5/x7pvzk651c3dqkllbxd1jd280000gn/T/easy_install-bQ1bGd/nltk-3.3/egg-dist-tmp-oKLSiq/nltk-3.3-py2.7.egg' and adding 'build/bdist.macosx-10.13-x86_64/egg' to it
removing 'build/bdist.macosx-10.13-x86_64/egg' (and everything under it)
creating //buildout-eggs/cp27m/tmpGLUtrI/nltk-3.3-py2.7.egg
Extracting nltk-3.3-py2.7.egg to //buildout-eggs/cp27m/tmpGLUtrI
Unpacking EGG-INFO/PKG-INFO to //buildout-eggs/cp27m/tmpGLUtrI/nltk-3.3-py2.7.egg/EGG-INFO/PKG-INFO
Unpacking EGG-INFO/SOURCES.txt to //buildout-eggs/cp27m/tmpGLUtrI/nltk-3.3-py2.7.egg/EGG-INFO/SOURCES.txt
...
byte-compiling //buildout-eggs/cp27m/tmpGLUtrI/nltk-3.3-py2.7.egg/nltk/__init__.py to __init__.pyc
byte-compiling //buildout-eggs/cp27m/tmpGLUtrI/nltk-3.3-py2.7.egg/nltk/book.py to book.pyc
...

While:
  Installing eggs.
  Getting distribution for 'nltk==3.3'.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:

AssertionError

This problem did not occur with nltk==3.2 (which is also distributed as a zip file).

Note that nltk 3.2 is stored in a file named nltk-3.2.zip:

Getting distribution for 'nltk==3.2'.
Fetching nltk 3.2 from: https://files.pythonhosted.org/packages/fb/85/04b783ad931e3ea2de0b79026deb7be27bc332f0bd7171b965dab5544646/nltk-3.2.zip#sha256=ae77e22bc4918cc2f970f70694d2f7c978aa4bddd1bea01b19bb9fa5cb4a10b8

Whereas nltk==3.3 is in a zip stored as nltk-3.3.0.zip:

Fetching nltk 3.3.0 from: https://files.pythonhosted.org/packages/50/09/3b1755d528ad9156ee7243d52aa5cd2b809ef053a0f31b53d92853dd653a/nltk-3.3.0.zip#sha256=fe0eda251be65843be86d7de9abfbf7161732256f742e623b21243ec47bdb718

nltk 3.2 was uploaded in March 2016 to legacy PyPI, whereas nltk 3.3 was uploaded a few days ago to Warehouse-based PyPI. It looks like something changed in the normalization rules or processing, either on the PyPI side or the setuptools side such that the filename is now normalized even when the version isn't. And buildout seems not able to deal with that.

Maybe it won't be too long before the first patch, nltk-3.3.1, is released 😄

@reinout
Copy link
Contributor

reinout commented May 14, 2018

(I'm replying a bit late).
The problem is probably the difference between 3.3 (from the filename) and 3.3.0 (the version). So: bug in the package release process.

But... I haven't looked at the other issues about normalization you've linked. That's probably exactly where the problem lies.

idgserpro added a commit to plonegovbr/brasil.gov.portal that referenced this issue Jun 3, 2019
djowett-ftw pushed a commit to 4teamwork/bobtemplates.4teamwork that referenced this issue Jan 15, 2020
djowett-ftw pushed a commit to 4teamwork/bobtemplates.4teamwork that referenced this issue Jan 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants