#43 closed defect (fixed)

on my cygwin install attempt after README guidelines the proposed "import zfec" test fails

Reported by: arnowa Owned by: warner
Priority: minor Milestone:
Component: code Version:
Keywords: Cc:
Launchpad Bug:

Description (last modified by warner)

on my cygwin install attempt after README guidelines the proposed "import zfec" test fails:

Python 2.5 (r25:51908, Mar 13 2007, 08:13:14)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import zfec
/usr/lib/python2.5/site-packages/zfec-1.0.0-py2.5-cygwin-1.5.24-i686.egg/_fec.py:3: UserWarning: Module _fec was already imported from /usr/lib/python2.5/site-packages/zfec-1.0.0-py2.5-cygwi
n-1.5.24-i686.egg/_fec.pyc, but /cygdrive/k/src/tahoe/src/zfec is being added to sys.path
  import sys, pkg_resources, imp
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "zfec/__init__.py", line 19, in <module>
    from _fec import Encoder, Decoder, Error
  File "build/bdist.cygwin-1.5.24-i686/egg/_fec.py", line 7, in <module>
  File "build/bdist.cygwin-1.5.24-i686/egg/_fec.py", line 6, in __bootstrap__
ImportError: Permission denied
>>>
[4]+  Stopped                 python

Change History (17)

comment:1 Changed at 2007-05-10T15:24:59Z by zooko

Thanks for the bug report Arno. I don't yet understand why this happens.

After you get the error shown above, could you run "ls -l" to get permission information about the files names in the error message?

I'll try to reproduce this or deduce what is going on.

comment:2 Changed at 2007-05-10T22:06:45Z by zooko

I still haven't figured this out. Could you please do a couple of diagnostics:

  1. Try to run "ls -l" on any files that you can find. If build/bdist.cygwin-1.5.24-i686/egg/_fec.py doesn't actually exist, then try build/bdist.cygwin-1.5.24-i686/egg (I suspect that the "egg" is a ZIP file), and so on.
  1. {{{

python -i import setuptools setuptools.version }}}

The official stable version of setuptools is 0.6c5, but I required only 0.6c3 in order to make it a tad easier to install on Ubuntu Edgy. Anyway, I'd like to know what version of setuptools you have.

More soon...

comment:3 Changed at 2007-05-10T22:06:58Z by zooko

  • Owner changed from zooko to arnowa

comment:4 Changed at 2007-05-12T15:25:14Z by zooko

I just had a similar problem. The output was:

$ python -i
Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import zfec
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "zfec\__init__.py", line 19, in <module>
    from _fec import Encoder, Decoder, Error
ImportError: DLL load failed: The specified module could not be found.

Here are some possibly relevant facts:

$ python -i
Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.platform
'win32'
>>> sys.version
'2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]'
>>> import setuptools
>>> setuptools.__version__
'0.6c5'

What versionf of those things are on your system, Arno?

comment:5 Changed at 2007-05-12T15:25:19Z by zooko

  • Owner changed from arnowa to zooko
  • Status changed from new to assigned

comment:6 Changed at 2007-05-12T15:31:15Z by zooko

  • Owner changed from zooko to arnowa
  • Status changed from assigned to new

Hm, so I ran setup.py clean --all, and then I ran darcs whatsnew -s -l and rm'ed everything that was identified as being new. (See also ticket #10.)

After that, then the problem goes away.

Will you try that, Arno? Also, if it makes a difference, you can get a darcs repository with just zfec and not tahoe from

http://allmydata.org/source/zfec/

Assigning to Arno to see if cleaning everything away and retrying changes the behavior.

comment:7 Changed at 2007-05-12T15:57:42Z by zooko

Once you can get zfec to load, then another thing we want to know is what is the path from which zfec was loaded:

$ python -i
Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import zfec
>>> print zfec
<module 'zfec' from 'c:\Python25\lib\site-packages\zfec-1.0.0-py2.5-win32.egg\zfec\__init__.pyc'>

comment:8 Changed at 2007-05-12T19:43:59Z by zooko

Arno mailed me this:

i found that that permission problem seems to be related to the fact that  
the _fec.dll is dlopened from ~/.python-eggs/zfec-something-egg-tmp dir,  
having 600 as permissions. Everything is fine when i change that manually  
to 777 or whatever. But i can't see where to influence python or whomever  
to avoid that 600...?

comment:9 Changed at 2007-05-13T15:30:01Z by arnowa

  • Owner changed from arnowa to zooko

using setuptools's 0.7a1 (i. e. the subversion trunk, i think) seems to solve this.

comment:10 Changed at 2007-05-13T18:53:29Z by zooko

  • Owner changed from zooko to arnowa
  • Priority changed from major to minor

Arno: Try putting "0.7a1" as the "default version" in ez_setup.py and adding in the appropriate md5sum for 0.7a1. :-)

comment:11 Changed at 2007-05-16T15:20:20Z by zooko

  • Owner changed from arnowa to zooko
  • Status changed from new to assigned

Philip J Eby reportsthat this will be fixed by setuptools v0.6c6, which is due to be released Real Soon Now.

comment:12 Changed at 2007-05-18T17:00:49Z by zooko

So... I guess the next step is either wait for 0.6c6 or else start using 0.7a1.

comment:13 Changed at 2007-06-04T19:45:14Z by zooko

setuptools 0.6c6 is out

comment:14 Changed at 2007-06-04T19:59:59Z by zooko

I'm making a new version of zfec packaging which uses setuptools 0.6c6 and which also uses pyutil package by automated import and dependency instead of by copying some of pyutil's files into zfec/util/.

comment:15 Changed at 2007-06-05T02:50:32Z by warner

  • Description modified (diff)

(just wikiformatting the exception in the descriptive text)

comment:16 Changed at 2007-08-01T21:42:26Z by zooko

  • Owner changed from zooko to warner
  • Status changed from assigned to new

Arno confirmed that installing setuptools v0.6c6 fixed it on his cygwin machine.

He submitted a patch to the mailing list:

http://allmydata.org/pipermail/tahoe-dev/2007-July/date.html

Which makes setuptools 0.6c6 required. It is slightly unfortunate to require people to upgrade setuptools if they don't have to (that is, if they don't happen to hit this bug, which is only known on cygwin), but on the other hand it may be simpler to just require it (which is what Arno's patch does), than to require different versions on different platforms (which isn't so hard in Python code, but it complicated the README a tad).

Brian, RobK, what do you think? Shall we accept Arno's patch and just require setuptools 0.6c6 for all packages on all platforms?

comment:17 Changed at 2007-08-10T23:12:36Z by zooko

  • Resolution set to fixed
  • Status changed from new to closed

Thanks, Arno!

Note: See TracTickets for help on using tickets.