Definitely, it's preferring libenchant 1 to enchant 2 def _e_path_possibilities(): """Generator yielding possible locations of the enchant library.""" # Allow it to be overridden using an environment variable. yield os.environ.get("PYENCHANT_LIBRARY_PATH") # For linuxish systems, allow default soname lookup a chance to succeed. if sys.platform not in ("win32", "darwin"): yield "libenchant.so.1.6.0" yield "libenchant.so.1" yield "libenchant.so" # See if ctypes can find the library for us, under various names. yield find_library("enchant-2") yield find_library("enchant") yield find_library("libenchant") yield find_library("libenchant-1") # Special-case handling for enchant installed by macports. if sys.platform == 'darwin': yield "/opt/local/lib/libenchant.dylib" We currently have libenchant.so.1.6.1, so basically, if PYENCHANT_LIBRARY_PATH is not set, that gives valid results first for "libenchant.so.1" (if libenchant1 is installed, and it's installed by enchant-1-backend-voikko) and for find_library("enchant-2") (which is the one that was used in my first successfull test), and then find_library("enchant"), gives a reference to "libenchant.so.1" again. So I'd say our options are: 1) Remove the special case of preferring libenchant 1 on "linuxish systems" 2) Make enchant-1-backend-voikko require enchant-1-backends 3) All of the above Opinions?