用户工具

站点工具


linux:python:编译py文件为pyc文件

这是本文档旧的修订版!


====== python编译py文件为pyc文件 ======

参考: https://blog.csdn.net/kongkongqixi/article/details/106207658

<code python> 1.编译文件 编译py文件为pyc文件:

import py_compile py_compile.compile('./test.py’) 1 2 结果会在test.py同文件夹下生成__pycache__文件夹:生成test.cpython-36.pyc(cpython-36,36数字是python版本,不同版本的数字不同)文件;

编译文件夹下所有py文件为pyc文件:

import compileall path = './' compileall.compile_dir(path) 1 2 3 结果会在每一文件夹下都会生成__pycache__文件夹,把当前文件夹下的py文件编译为xxx.cpython-36.pyc文件保存;

2.文件读取 pyc文件运行:需要把文件xxx.cpython-36.pyc重命名为xxx.pyc这样就可以正常文件一样导入,如果是文件夹下所有文件,都需要修改为xxx.pyc文件形式,,不然可能会出现找不到包的导入报错,导入如下:

import test 1 运行pyc文件形式:

import pyc 1 3.全项目替换pyc文件实例代码 编译:

import compileall path = './' compileall.compile_dir(path) 1 2 3 pyc文件替换py文件,并修改后缀:

import os import shutil path = './' def move_pyc(path):

for i in os.listdir(path):
    if os.path.isdir(os.path.join(path, i)):
        move_pyc(os.path.join(path, i))
if os.path.exists(os.path.join(path, '__pycache__')):
    for name in os.listdir(os.path.join(path, '__pycache__')):
        
        file_name = name.split('.')[0]+'.py'
        if os.path.exists(os.path.join(path, file_name)):
            print(os.path.join(path, file_name))
            # os.remove(os.path.join(path, file_name)) #删除py文件,慎重
        shutil.move(os.path.join(path, '__pycache__', name), os.path.join(path, name.replace('cpython-36.','')))
        

———————————————— 版权声明:本文为CSDN博主「kongkongqixi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/kongkongqixi/article/details/106207658 </code>

linux/python/编译py文件为pyc文件.1666141014.txt.gz · 最后更改: (外部编辑)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki