[Python-Dev] where is the python "import" implemented

Antoine Pitrou solipsis at pitrou.net
Tue Dec 11 10:11:39 CET 2012


Hello,

Le Tue, 11 Dec 2012 14:08:27 +0800,
"Isml" <76069016 at qq.com> a écrit :
> Hi, everyone,
>     I am testing modifying the pyc file when it is imported. As I
> know, there is three situation: 1、runing in the python.exe
>          eg: python.exe test.pyc
>         in this situation, I find the source on line 1983 in file
> pythonrun.c 2、import the pyc from a zip file
>         I find the source on line 1132 in zipimport.c
>     3、do a normal import
>         eg: two file : main.py and testmodule.py
>         and in main.py:
>         import testmodule
>  
>         in this situation, I can not find the source code how python
> implement it. I test a wrong format pyc, and got a error
> "ImportError: bad magic number",and I search "bad magic number" in
> the source code,  I find it is in importlib/_bootstrap.py(line
> 815),but when I modify this error info(eg: test bad magic) and run
> again, nothing is changed. It seems that the file is not the correct
> position.

importlib/_bootstrap.py is indeed the place, but you need to run "make"
once you have modified that file. _bootstrap.py is frozen into the
executable at compile time, because otherwise the bootstrap issues are
intractable.

Regards

Antoine.




More information about the Python-Dev mailing list