A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2004-July/046470.html below:

[Python-Dev] Fix import errors to have data

[Python-Dev] Fix import errors to have dataTim Peters tim.peters at gmail.com
Wed Jul 28 04:40:45 CEST 2004
[Delaney, Timothy C (Timothy)]
> OK - the problem as I see it is that a given module that exists, but
> raises ImportError, only raises ImportError *once*, whereas it really
> should raise ImportError every time

Jim's after something different, while the problem you're thinking
about is more general than just ImportError.  When an import of an
existing module fails for *any* reason, subsequent attempts to import
the same module succeed.  For example,

C:\Code>type a.py
1/0

C:\Code>\python23\python.exe
Python 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import a
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "a.py", line 1, in ?
    1/0
ZeroDivisionError: integer division or modulo by zero
>>> import a
>>>

This is Bad, because an uncaught exception in module initialization
means the module probably can't fulfill its contract, yet subsequent
importers get no clue that the module is in a damaged state (until the
module fails to do its job, which may or may not be obvious when it
occurs).  A module failing to import because it suffers an ImportError
itself is once instance of this, but the same applies to a module
failing to import for any other reason:  in all these cases,
subsequent imports don't get the exception the initial importer saw,
they get a module object in an arbitrarily screwed-up state.
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4