Web Images Videos Maps News Groups Gmail more »
Recently Visited Groups | Help | Sign in
Google Groups Home
PyPI bdist_wininst upload failing
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  7 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Steven Bethard  
View profile  
 More options May 27 2007, 6:03 am
Newsgroups: comp.lang.python
From: Steven Bethard <steven.beth...@gmail.com>
Date: Sat, 26 May 2007 14:03:48 -0600
Local: Sun, May 27 2007 6:03 am
Subject: PyPI bdist_wininst upload failing
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.)

STeVe


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Steven Bethard  
View profile  
 More options May 27 2007, 4:20 pm
Newsgroups: comp.lang.python
From: Steven Bethard <steven.beth...@gmail.com>
Date: Sun, 27 May 2007 00:20:46 -0600
Local: Sun, May 27 2007 4:20 pm
Subject: Re: PyPI bdist_wininst upload failing

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:

     Error processing form

     invalid distribution file

Looks like this originates from:

     https://svn.python.org/packages/trunk/pypi/webui.py

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:

     https://svn.python.org/packages/trunk/pypi/verify_filetype.py

says:

     if filename.endswith('.exe'):
         # check for valid exe
         if filetype != 'bdist_wininst':
             return False

         try:
             t = StringIO.StringIO(content)
             t.filename = filename
             z = zipfile.ZipFile(t)
             l = z.namelist()
         except zipfile.error:
             return False

         for zipname in l:
             if not safe_zipnames.match(zipname):
                 return False

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


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Machin  
View profile  
 More options May 27 2007, 5:11 pm
Newsgroups: comp.lang.python
From: John Machin <sjmac...@lexicon.net>
Date: 27 May 2007 00:11:12 -0700
Local: Sun, May 27 2007 5:11 pm
Subject: Re: PyPI bdist_wininst upload failing
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.:
>>> 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']


HTH,
John

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Steven Bethard  
View profile  
 More options May 28 2007, 1:19 am
Newsgroups: comp.lang.python
From: Steven Bethard <steven.beth...@gmail.com>
Date: Sun, 27 May 2007 09:19:03 -0600
Local: Mon, May 28 2007 1:19 am
Subject: Re: PyPI bdist_wininst upload failing

Interesting. Thanks!

 >>> zipfile.ZipFile('argparse-0.8.0.win32.exe').namelist()
['.../lib/argparse-0.8.0-py2.5.egg-info', '.../lib/argparse.py']

Interestingly, it looks like none of these are "safe_zipnames" according to:

     https://svn.python.org/packages/trunk/pypi/verify_filetype.py

I wonder why that is...

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

STeVe


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Gabriel Genellina  
View profile  
 More options May 28 2007, 1:34 am
Newsgroups: comp.lang.python
From: "Gabriel Genellina" <gagsl-...@yahoo.com.ar>
Date: Sun, 27 May 2007 12:34:44 -0300
Local: Mon, May 28 2007 1:34 am
Subject: Re: PyPI bdist_wininst upload failing
En Sun, 27 May 2007 12:19:03 -0300, Steven Bethard  
<steven.beth...@gmail.com> escribió:

> Also, I couldn't get the StringIO code from there to work:

>  >>> import StringIO
>  >>> content = open('argparse-0.8.0.win32.exe').read()

Use open("...","rb").read() - the "b" is important on Windows.

--
Gabriel Genellina


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Steven Bethard  
View profile  
 More options May 28 2007, 1:55 am
Newsgroups: comp.lang.python
From: Steven Bethard <steven.beth...@gmail.com>
Date: Sun, 27 May 2007 09:55:01 -0600
Local: Mon, May 28 2007 1:55 am
Subject: Re: PyPI bdist_wininst upload failing

Gabriel Genellina wrote:
> En Sun, 27 May 2007 12:19:03 -0300, Steven Bethard
> <steven.beth...@gmail.com> escribió:

>> Also, I couldn't get the StringIO code from there to work:

>>  >>> import StringIO
>>  >>> content = open('argparse-0.8.0.win32.exe').read()

> Use open("...","rb").read() - the "b" is important on Windows.

Ahh, great.  Thanks.

So any ideas why distutils is generating a bdist_wininst installer with
file names like:

     lib/argparse-0.8.0-py2.5.egg-info
     lib/argparse.py

instead of what John Machin had:

     PURELIB/xlrd-0.6.1a4-py2.5.egg-info
     PURELIB/xlrd/biffh.py

The ones with 'lib' instead of 'PURELIB' will get rejected by the
safe_zipnames regular expression in verify_filetype.py:

     re.compile(r'(purelib|platlib|headers|scripts|data).+', re.I)

Is there something I need to do when running 'setup.py bdist_wininst' to
get 'PURELIB' instead of 'lib'?

STeVe


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Steven Bethard  
View profile  
 More options May 28 2007, 2:23 am
Newsgroups: comp.lang.python
From: Steven Bethard <steven.beth...@gmail.com>
Date: Sun, 27 May 2007 10:23:30 -0600
Local: Mon, May 28 2007 2:23 am
Subject: Re: PyPI bdist_wininst upload failing

I figured it out. As suggested here:

http://peak.telecommunity.com/DevCenter/EasyInstall#administrator-ins...

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.

Thanks everyone for the help!

STeVe


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google