`import somemodule` does not check all paths in `sys.path`
dieter at handshake.de
Mon Jul 30 01:15:41 EDT 2018
stefand986 at gmail.com writes:
> The "story" is: In homeassistant (short HA) some modules are installed at runtime during first start ("bootstrapping"), and for some reason loading the modules fails directly after installing the modules. Subsequent starts work fine.
> The modules that are installed during bootstrapping are installed to `~/.homeassistant/deps/lib/python3.7/site-packages`. Installing the modules happens in a different thread than where the modules are imported. (However as far as I can tell the importing thread waits for the install to finish.)
> Now the interesting thing is that when I start HA in verbose mode, I can see that Python is trying not all of the paths that are in `sys.path` (in the following snippet I cut out some stuff for brevity. Link to the full log at the end). As one can see the `~/.homeassistant/deps/lib/python3.7/site-packages` location is not tried and hence the import fails:
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