On 10/3/2018 4:29 PM, Marcus Harnisch wrote:
When trying to import lzma on one of my machines, I was suprised to get
a normal import error like for any other module.
What was the traceback and message? Did you get an import error for one
of the three imports in lzma.py. I don't know why you would expect
anything else. Any import in any stdlib module can potential fail if
the file is buggy, corrupted, or missing.
> According to the docs
lzma has been part of stdlib since 3.3. Further digging revealed that
the error is due to the fact that xz wasn't compiled in when building
Python.
Perhaps this is a buggy build. Where did you get it from? Have you
complained to the distributor?
lzma is documented as wrapping liblzma and supporting .xz files. If
'xz' is a separate library, then perhaps lzma should tolerate it missing.
Since I suspect that there are other optional stdlib modules,
I agree that modules that are necessarily optional should be documented
as such, and as I mentioned on https://bugs.python.org/issue34895, many
are so documented.
In the absence of such documentation, I would considered it to be not
optional except as some distributor decides to omit it. But then it is
the responsibility of the distributor to document the omission.
this made me think whether the message in those cases should look a
little more polished. Perhaps installing a stub module that prints some
informative text before raising the relevant exception or similar.
Also, maybe add a little note in the docs, stating that despite being
part of stdlib this module might not be available on all systems.
ImportError messages and the documented status versus actual status of a
module are two different issues. Let's keep them separate.
--
Terry Jan Reedy
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/