<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def find_from(path):
 """Find path of an .ensime config, searching recursively upward from path. Args: path (str):
 Path of a file or directory from where to start searching. Returns: str: Canonical path of nearest ``.ensime``, or ``None`` if not found. """

        realpath = os.path.realpath(path)
        config_path = os.path.join(realpath, '.ensime')

        if os.path.isfile(config_path):
            return config_path
        elif realpath == os.path.abspath('/'):
            return None
        else:
            dirname = os.path.dirname(realpath)
            return ProjectConfig.find_from(dirname)