Why the file mode of .pyc files has x?

Peng Yu pengyu.ut at gmail.com
Sat Sep 26 11:24:22 EDT 2009


On Sat, Sep 26, 2009 at 8:10 AM, Steven D'Aprano
<steve at remove-this-cybersource.com.au> wrote:
> On Sat, 26 Sep 2009 06:57:52 -0500, Peng Yu wrote:
>
>> Hi,
>>
>> It is strange that the file mode of .pyc files are changed to executable
>> (x mode) after the corresponding .py files have been run.
>
> Are you sure? They don't on my system.
>
>
> [steve at sylar test]$ ls -l
> total 8
> -rw-rw-r-- 1 steve steve 6 2009-09-26 23:06 test.py
> [steve at sylar test]$ python2.6 test.py
> [steve at sylar test]$ ls -l
> total 8
> -rw-rw-r-- 1 steve steve 6 2009-09-26 23:06 test.py
>
>
> Running a .py file does not generally create a .pyc file. Normally you
> have to import it:
>
> [steve at sylar test]$ python2.6
> Python 2.6.1 (r261:67515, Dec 24 2008, 00:33:13)
> [GCC 4.1.2 20070502 (Red Hat 4.1.2-12)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import test
>>>> exit()
> [steve at sylar test]$ ls -l
> total 16
> -rw-rw-r-- 1 steve steve  6 2009-09-26 23:06 test.py
> -rw-rw-r-- 1 steve steve 94 2009-09-26 23:08 test.pyc
>
>
> Have you checked the umask of your system?

Here are my test case. If the .py file has the 'x' mode, the
corresponding .pyc file also has the 'x' mode after the .py file is
imported.

pengy at selenium:~/test/python/pyc_mode$ umask
0077
pengy at selenium:~/test/python/pyc_mode$ ll
total 8
-rw------- 1 pengy lilab  29 2009-09-26 10:10:45 main.py
-rwx------ 1 pengy lilab 106 2009-09-26 10:19:17 test.py
pengy at selenium:~/test/python/pyc_mode$ for f in *.py; do echo "###$f";
cat $f;done
###main.py
import test
test.test_func()
###test.py
#!/usr/bin/env python

def test_func() :
  print "in_test_func"

if __name__ == '__main__':
  test_func()
pengy at selenium:~/test/python/pyc_mode$ python main.py
in_test_func
pengy at selenium:~/test/python/pyc_mode$ ll
total 12
-rw------- 1 pengy lilab  29 2009-09-26 10:10:45 main.py
-rwx------ 1 pengy lilab 106 2009-09-26 10:19:17 test.py
-rwx------ 1 pengy lilab 339 2009-09-26 10:20:39 test.pyc



More information about the Python-list mailing list