PyFilesystem / pyfilesystem

Python filesystem abstraction layer
http://pyfilesystem.org/
BSD 3-Clause "New" or "Revised" License
288 stars 63 forks source link

Using python 3.2.3 on CentOS 6.3 cannot install or run any part of fs module #135

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Compile Python 3.2.3 on CentOS 6.3 (others may have same issue but CentOS 
6.3 is what I use).
2. Attempt to install or use any part of the fs module.

What is the expected output? What do you see instead?

Always get error message saying "ImportError: No module named errors"

What version of the product are you using? On what operating system?

I am using 0.4.0 of pyfilesystem, python 3.2.3, on CentOS 6.3

Please provide any additional information below.

Original issue reported on code.google.com by thexd...@gmail.com on 19 Sep 2012 at 10:22

GoogleCodeExporter commented 9 years ago
Python 3 support is somewhat provisional. Please try the latest code from SVN.

Original comment by willmcgugan on 19 Sep 2012 at 10:30

GoogleCodeExporter commented 9 years ago
Same error after I was able to get it installed since the easy_install is 
apparently not available in Python 3.

Original comment by thexd...@gmail.com on 19 Sep 2012 at 11:08

GoogleCodeExporter commented 9 years ago
If you're looking for easy_install you need to install distribute 
http://packages.python.org/distribute/ which works on Python3.

Original comment by gc...@loowis.durge.org on 19 Sep 2012 at 11:41

GoogleCodeExporter commented 9 years ago
ok, after using distribute to install it it seems to work with python 3 now, 
thanks for the help.

Original comment by thexd...@gmail.com on 19 Sep 2012 at 11:50

GoogleCodeExporter commented 9 years ago
Great!
I'll let you do some testing, but let us know when this bug can be closed...

Original comment by gc...@loowis.durge.org on 20 Sep 2012 at 12:13

GoogleCodeExporter commented 9 years ago
I spoke too soon, new error when I try to mount the filesystem. Below I am 
pasting what I used from the python commandline for testing in python 2.6.6 and 
3.2.3.

Python 2.6.6 (r266:84292, Sep 11 2012, 08:34:23)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from fs.memoryfs import MemoryFS
>>> from fs.expose import fuse
>>> fs = MemoryFS()
>>> mp = fuse.mount(fs, "~/memory3")
>>> mp.path
'/home/jeffp/memory3'
>>> mp.unmount()

Python 3.2.3 (default, Jul 23 2012, 13:08:26)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from fs.memoryfs import MemoryFS
>>> from fs.expose import fuse
>>> fs = MemoryFS()
>>> mp = fuse.mount(fs, "~/memory3")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.2/site-packages/fs-0.4.1-py3.2.egg/fs/expose/fuse/__init__.py", line 465, in mount
    mp = MountProcess(fs, path, kwds)
  File "/usr/local/lib/python3.2/site-packages/fs-0.4.1-py3.2.egg/fs/expose/fuse/__init__.py", line 577, in __init__
    raise RuntimeError("FUSE error: " + os.read(r,20).decode(NATIVE_ENCODING))
RuntimeError: FUSE error:

Original comment by thexd...@gmail.com on 20 Sep 2012 at 12:36

GoogleCodeExporter commented 9 years ago
Try using the "foreground" option to mount without spawning a background 
process, this may allow more debugging or error info to be printed:

    fuse.mount(fs, "~/memory3", foreground=True)

Original comment by rfkel...@gmail.com on 20 Sep 2012 at 5:21

GoogleCodeExporter commented 9 years ago
Here is what I got when adding foreground=True.

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.2/site-packages/fs-0.4.1-py3.2.egg/fs/expose/fuse/__init__.py", line 463, in mount
    return FUSE(op, path, raw_fi=True, foreground=foreground, **kwds)
  File "/usr/local/lib/python3.2/site-packages/fs-0.4.1-py3.2.egg/fs/expose/fuse/fuse_ctypes.py", line 319, in __init__
    argv = (c_char_p * len(args))(*args)
TypeError: bytes or integer address expected instead of str instance

I did have one problem that I fixed, but that did not seem to change this error.

Original comment by thexd...@gmail.com on 20 Sep 2012 at 8:56

GoogleCodeExporter commented 9 years ago
Any update on this issue?

Original comment by thexd...@gmail.com on 25 Sep 2012 at 9:44

GoogleCodeExporter commented 9 years ago
I decided to try Python 3.3 since it is supposed to me more compatible with 
Python 2, but still got the same error. I did not really expect it to work any 
better.

Original comment by thexd...@gmail.com on 2 Oct 2012 at 6:51

GoogleCodeExporter commented 9 years ago
Is it possible to cut a new release with the tweaks done for Python 3 
compatibility?

Currently, any modules which tries to be Python 3 compatible and try to use a 
stable release of pyfs is bound to failure since installing pyfs gives the 
error mentioned in the first post.

Original comment by j...@multani.info on 7 Feb 2013 at 7:43

GoogleCodeExporter commented 9 years ago
FYI, this is currently blocking 
https://bitbucket.org/kang/python-keyring-lib/issue/56/cannot-run-the-test-suite
-under-python-3

Original comment by j...@multani.info on 7 Feb 2013 at 7:49

GoogleCodeExporter commented 9 years ago
I'll do a minor version release. Probably at the weekend assuming there are no 
new issues or test failures.

Original comment by willmcgugan on 7 Feb 2013 at 8:07

GoogleCodeExporter commented 9 years ago
Didn't manage the release. There are currently a few test failures.

Original comment by willmcgugan on 4 Mar 2013 at 9:47

GoogleCodeExporter commented 9 years ago
It appears that 0.5.0 was released, apparently adding support for Python 3, and 
breaking compatibility with 0.4.0.

Original comment by projm...@yougov.com on 21 Mar 2014 at 2:26