Summary

I wanted to find a simple way to create FUSE filesystems in Python3. I found that support in Python2 was good and there is a good example, as in this gist (https://gist.github.com/wettenhj/7019100), but it appears that direct bindings in Python3 now exist in the form of a different library, pyfuse (see option 2), but the most popular way these days is to build a pyfilesystem2 extension and then mount it with fusefs. I don’t like this. I’m not overly fond of thinking in python and would prefer direct bindings, so I would choose to use pyfuse or, python2 or Clojure this application.

Python3+ methods

Option 1: pyfilesystem2 + fusefs

pyfilesystem2 does NOT create a virtual filesystem on its own.

You need fusefs to mount a pyfilesystem2 extension.

1
sudo pip install fs fusefs
1
2
# Usage
fusefs <url> <mountpoint>

url is the pyFilesystem2 resource to be mounted, and may contain placeholders for such values as username, host, password, etc.

Examples

Dropbox First, install the dropbox package.

1
sudo pip install dropbox

Run the nosetests.

1
vim +/"setup(test_suite='dropboxfs.tests')" "$MYGIT/PyFilesystem/fs.dropboxfs/setup.py"
1
cd "$MYGIT/PyFilesystem/fs.dropboxfs"; nosetests

Option 2: pyfuse

https://github.com/nrclark/pyfuse

1
sudo pip install pyfuse3
Example
https://github.com/nrclark/pyfuse/blob/master/hello.py

I also looked into Python2 and Go

Python2 methods

Python 2 is obsolete, so no.

https://gist.github.com/wettenhj/7019100

golang

Clojure

https://ahungry.com/blog/2018-12-26-Clojure-is-Capable.html