title: Why is python trying to open files with <string> in the name?
body: <p>While debugging a problem with module loading, I've noticed something weird in the <code>strace</code> output for Python trying to load a non-existing module:</p>
  
  <pre><code>$ strace python3 -c 'import nosuchmodule'
  [...]
  openat(AT_FDCWD, "&lt;string&gt;", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
  openat(AT_FDCWD, "/usr/lib/python37.zip/&lt;string&gt;", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
  openat(AT_FDCWD, "/usr/lib/python3.7/&lt;string&gt;", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
  openat(AT_FDCWD, "/usr/lib/python3.7/lib-dynload/&lt;string&gt;", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
  openat(AT_FDCWD, "/usr/local/lib/python3.7/dist-packages/&lt;string&gt;", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
  openat(AT_FDCWD, "/usr/lib/python3/dist-packages/&lt;string&gt;", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
  write(2, "ModuleNotFoundError: No module n"..., 52ModuleNotFoundError: No module named 'nosuchmodule'
  </code></pre>
  
  <p>Why does cpython try to open files with name <code>&lt;string&gt;</code>?</p>
  
  <p>This happens both with Python 3.6.9 on Ubuntu and Python 3.7.3 on Debian.</p>