Disable use of pyc file with no matching py file

Terry Reedy tjreedy at udel.edu
Tue Jan 31 18:43:32 EST 2012

On 1/31/2012 3:20 PM, John Roth wrote:
> On Jan 30, 3:43 pm, Terry Reedy<tjre... at udel.edu>  wrote:
>> On 1/30/2012 4:30 PM, Roy Smith wrote:
>>> Every so often (typically when refactoring), I'll remove a .py file
>>> and forget to remove the corresponding .pyc file.  If I then import
>>> the module, python finds the orphaned .pyc and happily imports it.
>>> Usually leading to confusing and hard to debug failures.
>>> Is there some way to globally tell python, "Never import a .pyc
>>> unless the corresponding .py file exits"?
>> Upgrade to 3.2.

I tested before writing this. The caveat is that x.pyc in the same 
directly as x.py will not be ignored (for back compatibility). However, 
this only happens intentionally as .pyc files are put in __pycache__/ 
with name x.<version>.pyc, where <version> is 'cpython-32' or something 
similar for another version or implementation.

> I've noticed that the tutorial (section 6.1.3) hasn't been updated for
> PEP 3147; there's no way of telling that this is the behavior from
> reading the tutorial. The development doc for 3.3 hasn't been updated
> either.

You are right. An oversight. Thanks for noticing.
Suggested rewrites are welcome.

Terry Jan Reedy

More information about the Python-list mailing list