On Sat, 27 Mar 2021 00:05:35 +0000 Julian Smith <ju...@op59.net> wrote:
> On Fri, 26 Mar 2021 23:19:30 +0000 > "Thomas Kluyver" <tho...@kluyver.me.uk> wrote: > > > On Fri, 26 Mar 2021, at 23:04, Julian Smith wrote: > > > I can't tell from pip-18.1's diagnostics what exactly is going wrong. > > > > > > Given that my setup.py implements the normal distutils-style argv > > > handling, i was expecting things to work, but pip-18.1 appears to fail > > > before it even tries to run setup.py, so the only thing i can think of > > > is that the PKG-INFO file could be causing a problem? > > > > Looking at your package, I think the issue is that you have the files > > (setup.py etc.) in the top level of the tarball, but pip is expecting a > > <name>-<version> folder in the tarball which contains all the files. > > > > The actual format of sdists is something that's not yet properly > > documented, as far as I know, but you can look at essentially any package > > to see what I mean in this case. E.g. six: > > > > https://files.pythonhosted.org/packages/6b/34/415834bfdafca3c5f451532e8a8d9ba89a21c9743a0c59fbd0205c7f9426/six-1.15.0.tar.gz > > > > Thanks for this. I had high hopes that this would solve things, but > unfortunately i'm seeing the same behaviour as before. > > I've uploaded my new sdist, optest-1.0.20210326.2328.tar.gz, so one can > attempt to install it with: > > pip install -i https://test.pypi.org/simple optest > > > The six-1.15.0.tar.gz file you mention does install with pip-18.1, in > an interesting way - it fails at first before eventually succeeding by > running 'setup.py install': > > Processing ./six-1.15.0.tar.gz > Building wheels for collected packages: six > Running setup.py bdist_wheel for six ... error > Complete output from command > /home/jules/artifex-remote/pylocal/bin/python3 -u -c "import > setuptools, > > tokenize;__file__='/tmp/pip-req-build-naagtvzk/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/pip-wheel-ouokji77 --python-tag cp37: usage: -c > [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: -c --help > [cmd1 cmd2 ...] or: -c --help-commands or: -c cmd --help > > error: invalid command 'bdist_wheel' > > ---------------------------------------- > Failed building wheel for six > Running setup.py clean for six > Failed to build six > Installing collected packages: six > Running setup.py install for six ... done > Successfully installed six-1.15.0 > > > This is how i thought my sdist would install, so i guess i could try to > move my sdist to be similar to six-1.15.0.tar.gz, and things should > eventually start to work. I eventually managed to local installs from sdist to work with pip-18.1 by modifying my pyproject.toml, changing: [build-system] requires = [] to: [build-system] requires = ["wheel"] [Using "setup" also works.] This seems to make a difference even though my setup.py and pipcl.py files don't use setuptools. I also had to make my setup.py script handle the 'dist_info' command. setuptools.setup()'s help text doesn't mention this so it's not immediately clear what it is supposed to do, but it turns out to be similar to egg_info except for putting files in <egg_base>/<name>.dist-info/ instead of <egg_base>/.egg-info/. Unfortunately although i can now install from a local sdist with old and new pip, the 'requires = ["wheel"]' seems to break things when testing on test.pypi.org - i get: requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://test.pypi.org/simple/wheel/ pip-18.1 then gives up. pip-21.0.1 carries on, running setup.py directly to do the install of my package. I guess i could try uploading to pypi.org, and see whether it can give the dummy "wheel" package, but i was hoping to be able to get things working reliably on test.pypi.org first. Thanks, - Julian -- http://op59.net -- Distutils-SIG mailing list -- distutils-sig@python.org To unsubscribe send an email to distutils-sig-le...@python.org https://mail.python.org/mailman3/lists/distutils-sig.python.org/ Message archived at https://mail.python.org/archives/list/distutils-sig@python.org/message/T2E5QLTMVEYOICV3CJSHTTISPUOWY62A/