一直不知道这个模块到底在哪,而且也挺想搞清楚官方那些模块到底在哪一个目录下。
1.使用grep -rl "copy.py" /usr/lib/python2.7/site-packages/ansible(这个目录是专门放ansible源码目录的)
而后找到是/usr/lib/python2.7/site-packages/ansible/modules/files/copy.py这个文件,这里须要注意的是若是你安装ansible用过copy这个模块,那么可能就不会是copy.py这个文件,就变成两个文件,一个是copy.pyc,一个是copy.pyojava
2.两个文件说下做用,
pyc文件,是python编译后的字节码(bytecode)文件。只要你运行了py文件,python编译器就会自动生成一个对应的pyc字节码文件。这个pyc字节码文件,通过python解释器,会生成机器码运行(这也是为何pyc文件能够跨平台部署,相似于java的跨平台,java中JVM运行的字节码文件)。下次调用直接调用pyc,而不调用py文件。直到你这个py文件有改变。python解释器会检查pyc文件中的生成时间,对比py文件的修改时间,若是py更新,那么就生成新的pyc。
pyo文件,是python编译优化后的字节码文件。pyo文件在大小上,通常小于等于pyc文件。其实也就是将源码的断言去除了。
若是想获得某个py文件的pyo,则能够运行:python -O -m py_compile yourfile.pypython
3.至于你想看运行过的一些模块源码,能够直接去https://github.com/ansible/ansible去看git