一直不知道这个模块到底在哪,并且也挺想搞清楚官方那些模块到底在哪个目录下。 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.pyo
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.py
3.至于你想看运行过的一些模块源码,可以直接去https://github.com/ansible/ansible去看