`import somemodule` does not check all paths in `sys.path`

stefand986 at gmail.com stefand986 at gmail.com
Mon Jul 30 03:18:49 EDT 2018

Note that in the `sys.path`variable the path is given as absolute path (I only wrote it relative to `~` in the in my post, but in the script the absolute path is used everywhere). See line 2:


Also by the time the import happens, the directory is existing. It is not existing from the beginning, but I also tried calling `importlib.invalidate_caches()` after installing the packages, which should force python to check the directories again.

Another interesting thing that I found out is that if I use the (now deprecated) `imp.find_module('sqlalchemy')` it returns the correct path. However if I do the same with `importlib.util.find_spec('sqlalchemy')`  the package is not found! (`importlib` is the suggested replacement for `imp`).

To me it really looks like a bug in `importlib`.

Am Montag, 30. Juli 2018 07:16:01 UTC+2 schrieb dieter:
> When I remember right:
>  * Python silently ignores non existent directories in "sys.path"
>  * "~" is not automatically expanded into the home directory.
> This would suggest, remplace "~/.homeassistent/..." by
> "/home/pyuser/.homeassistent/..." and try again.

More information about the Python-list mailing list