I just tried to upload new versions of the argparse module to PyPI, but it seems like I can no longer upload Windows installers:
$ setup.py sdist bdist_wininst upload ... running upload Submitting dist\argparse-0.8.0.zip to http://www.python.org/pypi Server response (200): OK Submitting dist\argparse-0.8.0.win32.exe to http://www.python.org/pypi Upload failed (400): Bad Request
Anyone know what I'm doing wrong? (I've always been able to upload bdist_wininst packages to PyPI in the past.)
Steven Bethard wrote: > I just tried to upload new versions of the argparse module to PyPI, but > it seems like I can no longer upload Windows installers:
> $ setup.py sdist bdist_wininst upload > ... > running upload > Submitting dist\argparse-0.8.0.zip to http://www.python.org/pypi > Server response (200): OK > Submitting dist\argparse-0.8.0.win32.exe to http://www.python.org/pypi > Upload failed (400): Bad Request
> Anyone know what I'm doing wrong? (I've always been able to upload > bdist_wininst packages to PyPI in the past.)
Still haven't figured this out yet, but I discovered that I get a slightly more informative message if I do the upload manually with the PyPI form. It then says:
down near the bottom in the file_upload() method. I can't figure out which "invalid distribution file" error is being triggered, but in looking around, I saw that is_distutils_file() in:
On May 27, 4:20 pm, Steven Bethard <steven.beth...@gmail.com> wrote:
> Steven Bethard wrote: > > I just tried to upload new versions of the argparse module to PyPI, but > > it seems like I can no longer upload Windows installers: [snip] > That seems a little weird to me. Are the bdist_wininst exe files really > zip files? Or did I just misunderstand what "content" is?
> STeVe
They are exe files with a zip appended. Try out the above code on your file; it may just help you suss out what the problem is. E.g.:
John Machin wrote: > On May 27, 4:20 pm, Steven Bethard <steven.beth...@gmail.com> wrote: >> Steven Bethard wrote: >>> I just tried to upload new versions of the argparse module to PyPI, but >>> it seems like I can no longer upload Windows installers: > [snip] >> That seems a little weird to me. Are the bdist_wininst exe files really >> zip files? Or did I just misunderstand what "content" is?
> They are exe files with a zip appended. Try out the above code on your > file; it may just help you suss out what the problem is. > E.g.: >>>> import zipfile >>>> zipfile.ZipFile('xlrd-0.6.1a4.win32.exe').namelist() > ['PURELIB/xlrd-0.6.1a4-py2.5.egg-info', 'PURELIB/xlrd/biffh.py', > ... snip ... > 'SCRIPTS/xlrdnameAPIdemo.py']
Also, I couldn't get the StringIO code from there to work:
>>> import StringIO >>> content = open('argparse-0.8.0.win32.exe').read() >>> t = StringIO.StringIO(content) >>> t.filename = 'argparse-0.8.0.win32.exe' >>> z = zipfile.ZipFile(t) Traceback (most recent call last): File "<interactive input>", line 1, in <module> File "C:\Python25\lib\zipfile.py", line 346, in __init__ self._GetContents() File "C:\Python25\lib\zipfile.py", line 366, in _GetContents self._RealGetContents() File "C:\Python25\lib\zipfile.py", line 378, in _RealGetContents raise BadZipfile, "File is not a zip file" BadZipfile: File is not a zip file
I had created a distutils.cfg to redirect my installs from the regular site-packages directory.
Since the distutils.cfg settings are read in for all distutils uses at the command line, they were also being read in when I tried to run "setup.py bdist_wininst", and so all my filenames were getting the altered paths instead of the regular PURELIB ones.