精华内容
下载资源
问答
  • pyc
    2022-04-13 17:55:14

    因需要,Windows环境运行,打包pyc,全工程打包

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2022/2/14 11:15
    # @Author  : cwb
    # @Site    : 
    # @File    : setup-pyc.py
    # @Software: PyCharm
    import os
    import shutil
    import compileall
    from pathlib import Path
    versions = ".cpython-37"
    pycache = "__pycache__"
    build_dir = 
    更多相关内容
  • 压缩: 本工具支持使用bz2,lzma,zlib模块对pyc文件进行压缩, 并可还原已压缩的pyc文件。 加/解密: 支持通过字节码混淆来保护python代码, 使pyc文件无法被uncompyle6等库反编译。
  • pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的...
  • Compile the .py files in the project to .pyc 将项目文件中的所有py文件编译为pyc,另存为新的文件夹,不影响原工程 使用:python py2pyc <project_dir> github: https://github.com/xd404015353/py2pyc.git ...
  • easy_pyc.zip

    2021-12-02 10:13:29
    easy_pyc
  • pyc文件删除工具

    2013-09-19 14:26:21
    写python的码农们对pyc都很熟悉 写个小工具专门清理pyc文件 顺便给一段bat脚本 我自己用的 这个文件我放在 project tool文件夹内 清除的是 project文件夹内所有的pyc文件 所以请注意目录哦 @ECHO OFF :: ...
  • 1 什么是pyc文件 1.1 什么是pyc文件 1、pyc文件:是由Python文件经过编译后所生成的文件,它是一种字节码 byte code,因此我们直接查看就是乱码的,也对源码起到一定的保护作用,但是这种字节码byte code是可以反...

    1 什么是pyc文件

    1.1 什么是pyc文件

    1、pyc文件:是由Python文件经过编译后所生成的文件,它是一种字节码 byte code,因此我们直接查看就是乱码的,也对源码起到一定的保护作用,但是这种字节码byte code是可以反编译的,后面会介绍!

    我们都知道计算机是不认识你在代码里写的那一行行字母的,计算机只认二进制,也只执行二进制文件,我们写的代码是需要编译器编译成二进制的。(参考

    对于Python来说你写的Python代码在执行python xxx.py时会由Python解析器翻译成PyCodeObject对象,俗称字节码(byte code),然后交由Python虚拟机来执行字节码(PS:字节码才是可执行的)。

    在这个过程中这些字节码都是在内存中的,众所周知Python的运行性能不如编译性语言(比如C语言,JAVA …),所以Python在程序执行结束后会把字节码写入到硬盘中,保存为.pyc文件,目的是下一次再执行python xxx.py程序时,Python会先在目录下找xxx.pyc文件来执行,因为.pyc文件里保存的是字节码,所以就节省了Python解析器把xxx.py翻译成字节码的时间,所以就提高了性能。

    总结就是.pyc文件是一个可执行的字节码文件,目的是节省Python解析器翻译时间,提高运行效率。其实性能只会提高那么一丢丢,大型项目.py文件很多的话,猿人学Python测试过节省的时间就多一点。

    2、我们同样可以像执行py文件一样来执行pyc文件,例如:

    • python test.py
    • python test.pyc

    注意:

    必须保证编译成pyc文件的python解释器版本和现在执行的python解释器版本保持一致,否则会报错,如下我导入deepsocial.pyc文件中的模块是报错:ImportError: bad magic number in 'deepsocial': b'B\r\r\n'

        from deepsocial import *
    ImportError: bad magic number in 'deepsocial': b'B\r\r\n'
    

    1.2 pyc文件是怎么生成的,有什么好处

    从上面的介绍我们已经知道pyc的好处主要是:

    • 由于pyc源码不可见,因此可以起到保护代码安全性的作用,但也不是绝对的,因为pyc文件是可以被反编译
    • pyc文件可以提高代码的执行效率

    pyc的内容python的版本相关,不同版本编译的pyc文件不一样

    2 把python的py文件编译成pyc文件

    下面我测试的文件目录结构:

    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project$ tree test/
    test/
    ├── deepsocial.py
    └── scripts
        └── run.py
    
    1 directory, 2 files
    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project$ 
    

    2.1 使用python内置库py_compile把单个py文件编译成pyc文件

    1、使用py_compile把单个py文件编译成pyc文件

    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project/test$ ls
    deepsocial.py  scripts
    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project/test$ python
    Python 3.6.12 |Anaconda, Inc.| (default, Sep  8 2020, 23:10:56) 
    [GCC 7.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import py_compile
    >>> py_compile.compile("./deepsocial.py")
    './__pycache__/deepsocial.cpython-36.pyc'
    >>> 
    

    生成文件如下:

    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project/test$ tree
    .
    ├── deepsocial.py
    ├── __pycache__
    │   └── deepsocial.cpython-36.pyc
    └── scripts
        └── run.py
    
    2 directories, 3 files
    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project/test$ 
    

    2.2 使用python内置库compileall把多个py文件编译成pyc文件

    2.2.1 使用python -m compileall命令把多个py文件编译成pyc文件

    1、首先来查看python -m compileall有哪些参数

    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project/test$ python -m compileall -h
    usage: compileall.py [-h] [-l] [-r RECURSION] [-f] [-q] [-b] [-d DESTDIR]
                         [-x REGEXP] [-i FILE] [-j WORKERS]
                         [FILE|DIR [FILE|DIR ...]]
    
    Utilities to support installing Python libraries.
    
    positional arguments:
      FILE|DIR              zero or more file and directory names to compile; if
                            no arguments given, defaults to the equivalent of -l
                            sys.path
    
    optional arguments:
      -h, --help            show this help message and exit
      -l                    don't recurse into subdirectories
      -r RECURSION          control the maximum recursion level. if `-l` and `-r`
                            options are specified, then `-r` takes precedence.
      -f                    force rebuild even if timestamps are up to date
      -q                    output only error messages; -qq will suppress the
                            error messages as well.
      -b                    use legacy (pre-PEP3147) compiled file locations
      -d DESTDIR            directory to prepend to file paths for use in compile-
                            time tracebacks and in runtime tracebacks in cases
                            where the source file is unavailable
      -x REGEXP             skip files matching the regular expression; the regexp
                            is searched for in the full path of each file
                            considered for compilation
      -i FILE               add all the files and directories listed in FILE to
                            the list considered for compilation; if "-", names are
                            read from stdin
      -j WORKERS, --workers WORKERS
                            Run compileall concurrently
    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project/test$ 
    

    2、把单个py文件生成pyc文件,例如

    python -m compileall deepsocial.py

    在这里插入图片描述

    3、递归的把当前目录下所有的py文件都生成对应的pyc文件

    python -m compileall .

    注意:

    后面有一个点., 表示当前目录!
    在这里插入图片描述

    2.2.2 使用compileall的API把多个py文件编译成pyc文件

    如下,是通过调用compileall的API接口,递归的指定目录下所有的py文件都生成对应的pyc文件

    >>> import compileall
    >>> compileall.compile_dir("/home/shl/shl_res/5_new_project/test")
    Listing '/home/shl/shl_res/5_new_project/test'...
    Compiling '/home/shl/shl_res/5_new_project/test/deepsocial.py'...
    Listing '/home/shl/shl_res/5_new_project/test/scripts'...
    Compiling '/home/shl/shl_res/5_new_project/test/scripts/run.py'...
    True
    >>> 
    
    

    在这里插入图片描述

    3 使用uncomplye6工具把pyc文件反编译成py文件

    只有pyc文件可以运行程序,但是是不能获取程序源码的。同时如果python的版本pyc版本使用的不同,那么程序会闪退。对pyc文件进行反编译需要用到python第三方库包uncompyle

    3.1 使用uncomplye6工具安装

    3.1.1 uncomplye6介绍

    1、uncomplye6介绍

    uncomplye6继承了decompyleuncompyleuncompyle2。uncompyle6可将python字节码转换回等效的python源代码,它接受python 1.3版到3.8版的字节码

    2、uncomplye6的github地址

    3.1.2 uncomplye6安装

    1、pip安装

    pip install uncomplye6

    2、从源码安装

    git clone https://github.com.cnpmjs.org/rocky/python-uncompyle6.git

    编译:

    $cd python-uncompyle6
    $pip install -e .  # set up to run from source tree
                        # Or if you want to install instead
    $python setup.py install # may need sudo
    

    3.2 使用uncomplye6工具把pyc反编译为py文件的具体使用

    3.2.1 查看uncomplye6的参数

    1、安装好uncomplye6后,可以使用uncomplye6 -h

    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project/DeepSOCIAL$ python -V
    Python 3.6.12 :: Anaconda, Inc.
    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project/DeepSOCIAL$ uncompyle6 -V
    uncompyle6 3.7.4
    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project/DeepSOCIAL$ uncompyle6 -h
    
    Usage:
      uncompyle6 [OPTIONS]... [ FILE | DIR]...
      uncompyle6 [--help | -h | --V | --version]
    
    Examples:
      uncompyle6      foo.pyc bar.pyc       # decompile foo.pyc, bar.pyc to stdout
      uncompyle6 -o . foo.pyc bar.pyc       # decompile to ./foo.pyc_dis and ./bar.pyc_dis
      uncompyle6 -o /tmp /usr/lib/python1.5 # decompile whole library
    
    Options:
      -o <path>     output decompiled files to this path:
                    if multiple input files are decompiled, the common prefix
                    is stripped from these names and the remainder appended to
                    <path>
                      uncompyle6 -o /tmp bla/fasel.pyc bla/foo.pyc
                        -> /tmp/fasel.pyc_dis, /tmp/foo.pyc_dis
                      uncompyle6 -o /tmp bla/fasel.pyc bar/foo.pyc
                        -> /tmp/bla/fasel.pyc_dis, /tmp/bar/foo.pyc_dis
                      uncompyle6 -o /tmp /usr/lib/python1.5
                        -> /tmp/smtplib.pyc_dis ... /tmp/lib-tk/FixTk.pyc_dis
      --compile | -c <python-file>
                    attempts a decompilation after compiling <python-file>
      -d            print timestamps
      -p <integer>  use <integer> number of processes
      -r            recurse directories looking for .pyc and .pyo files
      --fragments   use fragments deparser
      --verify      compare generated source with input byte-code
      --verify-run  compile generated source, run it and check exit code
      --syntax-verify compile generated source
      --linemaps    generated line number correspondencies between byte-code
                    and generated source output
      --encoding  <encoding>
                    use <encoding> in generated source according to pep-0263
      --help        show this message
    
    Debugging Options:
      --asm     | -a        include byte-code       (disables --verify)
      --grammar | -g        show matching grammar
      --tree={before|after}
      -t {before|after}     include syntax before (or after) tree transformation
                            (disables --verify)
      --tree++ | -T         add template rules to --tree=before when possible
    
    Extensions of generated files:
      '.pyc_dis' '.pyo_dis'   successfully decompiled (and verified if --verify)
        + '_unverified'       successfully decompile but --verify failed
        + '_failed'           decompile failed (contact author for enhancement)
    
    (yolov4) shl@zhihui-mint:~/shl_res/5_new_project/DeepSOCIAL$ 
    

    3.2.2 使用uncompyle6命令把pyc反编译成py文件

    1、首先我们可以去下载一个pyc文件(我正式因为看不到它的源码,才去搞的这个)

    wget https://github.com.cnpmjs.org/DrMahdiRezaei/DeepSOCIAL/blob/master/deepsocial.pyc

    2、使用uncompyle6命令把pyc反编译成py文件

    uncompyle6 deepsocial.pyc > deepsocial.py

    uncompyle6 -o deepsocial.py deepsocial.pyc

    输出的deepsocial.py文件开头会多一段这样的注释:

    # uncompyle6 version 3.7.4
    # Python bytecode 3.7 (3394)
    # Decompiled from: Python 3.6.12 |Anaconda, Inc.| (default, Sep  8 2020, 23:10:56) 
    # [GCC 7.3.0]
    # Embedded file name: deepsocial.py
    # Compiled at: 2021-03-06 05:54:51
    # Size of source mod 2**32: 14036 bytes
    

    说明:

    • uncompyle6 version 3.7.4uncompyle6工具的版本是3.7.4
    • Python bytecode 3.7deepsocial.pyc字节码byte code文件是使用python3.7生成的,因此要执行pyc文件,必须要python的版本也是3.7版本才可以!
    • Decompiled from: Python 3.6.12:我解码pyc使用的是python版本是3.6.12

    3、将当前文件夹中所有的 pyc 文件反编译成后缀名为.pyc_dis 的源文件

    uncompile -o . *.pyc

    4 python编译的如何设置不生成pyc文件

    pyc文件一般是在使用import导入另一个模块的时候会生成python3会把生成的pyc文件存储在__pycache__目录下。

    那如何让python编译的时候不生成pyc文件呢,有如下几种方法:

    方法一:使用-B参数

    python -B test.py

    可以使用python -h查看参数的含义

    (base) shl@zhihui-mint:~$ python -h
    usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
    Options and arguments (and corresponding environment variables):
    -b     : issue warnings about str(bytes_instance), str(bytearray_instance)
             and comparing bytes/bytearray with str. (-bb: issue errors)
    -B     : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x
    -c cmd : program passed in as string (terminates option list)
    -d     : debug output from parser; also PYTHONDEBUG=x
    -E     : ignore PYTHON* environment variables (such as PYTHONPATH)
    -h     : print this help message and exit (also --help)
    -i     : inspect interactively after running script; forces a prompt even
             if stdin does not appear to be a terminal; also PYTHONINSPECT=x
    -I     : isolate Python from the user's environment (implies -E and -s)
    -m mod : run library module as a script (terminates option list)
    -O     : remove assert and __debug__-dependent statements; add .opt-1 before
             .pyc extension; also PYTHONOPTIMIZE=x
    -OO    : do -O changes and also discard docstrings; add .opt-2 before
             .pyc extension
    -q     : don't print version and copyright messages on interactive startup
    -s     : don't add user site directory to sys.path; also PYTHONNOUSERSITE
    -S     : don't imply 'import site' on initialization
    -u     : force the stdout and stderr streams to be unbuffered;
             this option has no effect on stdin; also PYTHONUNBUFFERED=x
    -v     : verbose (trace import statements); also PYTHONVERBOSE=x
             can be supplied multiple times to increase verbosity
    -V     : print the Python version number and exit (also --version)
             when given twice, print more information about the build
    -W arg : warning control; arg is action:message:category:module:lineno
             also PYTHONWARNINGS=arg
    -x     : skip first line of source, allowing use of non-Unix forms of #!cmd
    

    方法二:设置环境变量

    export PYTHONDONTWRITEBYTECODE=1

    方法三:在导入的地方设置如下

    import sys
    sys.dont_write_bytecode = True
    

    参考:https://www.yuanrenxue.com/tricks/what-is-pyc-file.html # 对pyc文件解释比较清楚
    参考:https://www.php.cn/python-tutorials-416352.html # 把py文件生成pyc文件

    展开全文
  • Python的pyc文件

    2022-04-20 09:32:59
    Python的pyc文件 pyc文件就是由Python文件经过编译后所生成的文件,py文件编译成pyc文件后加载速度更快而且提高了代码的安全性。pyc的内容与python的版本相关,不同版本编译的pyc文件不一样 什么是pyc文件 pyc是一种...

    Python的pyc文件

    pyc文件就是由Python文件经过编译后所生成的文件,py文件编译成pyc文件后加载速度更快而且提高了代码的安全性。pyc的内容与python的版本相关,不同版本编译的pyc文件不一样

    什么是pyc文件

    pyc是一种二进制文件,是由Python文件经过编译后所生成的文件,它是一种byte code,Python文件变成pyc文件后,加载的速度有所提高,而且pyc还是一种跨平台的字节码,由python的虚拟机来执行的,就类似于JAVA或者.NET的虚拟机的概念。pyc的内容与python的版本是相关的,不同版本编译后的pyc文件是不同的,例如2.5版本编译的是pyc文件,而2.4版本编译的python是无法执行的

    为什么要pyc文件

    因为py文件是可以直接看到源码的,但是一般情况下开发出来的商业软件都不可能直接把源码泄漏出去,这样我们就需要把它编译成pyc文件来保护源码。另外pyc文件也是可以反编译的,不同版本编译后的pyc文件是不一样的,这主要是根据Python源码中所提供的opcode来决定。

    生成单个pyc文件

    python是一门很好的语言,它提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是 py_compile 模块。接下来将在文中中为大家讲解如何生成单个pyc文件

    import py_compile``py_compile.compile(r'H:/game/test.py')
    

    使用的方法非常简单,如上所示,直接在idle中,就可以把一个py文件编译为pyc文件了(假设在windows环境下)

    compile函数语法:

    compile(file[, cfile[, dfile[, doraise]]])
    

    file :表示得是需要编译的py文件的路径

    cfile :表示编译后的pyc文件名称和路径,默认为直接在file文件名后加c 或者 o,o表示优化的字节码

    dfile:指的是错误消息保存的路径

    doraise :有两个值分别是true或false,如果为true时则会引发一个PyCompileError,否则如果编译文件出错,则会有一个错误,默认显示在sys.stderr中,而不会引发异常

    批量生成pyc文件

    一般在项目中我们不会仅仅只编译一个py文件,而是需要将整个文件夹下的py文件都编译成pyc文件,这时我们可以通过以下的方法来实现:

    import compileall``compileall.compile_dir(r'H:/game')
    

    意思就是把game目录下以及其子目录下的py文件都编译为pyc文件了

    compileall函数语法:

    compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])
    

    dir: 表示需要编译的文件夹位置

    maxlevels :表示需要递归编译的子目录的层数,默认是10层,即默认会把10层子目录中的py文件编译为pyc

    ddir :表示错误消息保存的路径

    force:当为true时表示会被强制编译成pyc文件,即使pyc文件是最新的依然会被强制编译一次

    rx: 表示一个正则表达式,可以排除掉不想要的目录,或者只有符合条件的目录才进行编译

    quiet:当为True时,在编译后不会再标准输出中来打印信息

    展开全文
  • python py文件与pyc文件相互转换

    千次阅读 2022-05-04 23:52:35
    1、 compileall py文件转换为pyc 1.1、compileall命令行模式 不需要额外安装,python自带模块。 可以利用Python -m的方式在命令行模式下编译py文件。 python -m compileall 文件或路径 可选项 比如要编译...

    本文以Python3.8为例

    1、 compileall py文件转换为pyc

    1.1、compileall命令行模式

    不需要额外安装,python自带模块。

    可以利用Python -m的方式在命令行模式下编译py文件。

    python -m compileall  文件或路径  可选项

    比如要编译当前工作目录下的所有py文件:

    python -m compileall  .
    或者:
    python -m compileall  .\

    比如要编译某个指定目录sub\dir\下的所有py文件:

    python -m compileall  sub\dir\

    如果只编译某一个指定的test.py文件:

    python -m compileall  test.py

    注意命令行模式下,如果不指明文件或路径默认会将sys.path下的所有文件进行编译!sys.path包括了当前工作目录、Python安装目录、Python包目录等。

    使用上述编译命令后会在py文件所在的同一级目录下生成一个__pycache__文件夹,在该__pycache__文件夹下会根据py文件名称和Python版本号生成对应的pyc文件,比如test.py文件对应会生成一个__pycache__\test.cpython-38.pyc文件。

    下面这个例子编译new文件夹下的py文件,通过tree命令可以看到编译后的文件结构:

    E:\juzicode>python -m compileall new   
    Listing 'new'...
    Compiling 'new\\build.py'...
    Compiling 'new\\test.py'...
    
    E:\juzicode>tree new /f
    卷 xyz 的文件夹 PATH 列表
    卷序列号为 000000
    E:\JUZICODE\NEW
    │  build.py
    │  test.py
    │
    └─__pycache__
            build.cpython-38.pyc
            test.cpython-38.pyc    #生成的pyc文件所在的位置

    使用python -m compileall -h可以看到帮助文档和可选项的含义:

    -l:不递归编译子文件夹;

    -r level:指定编译文件夹的层数,优先级高于-l;level=0表示不进入下一层,levle=1表示进入第一层,level=2表示进入第二层,以此类推。

    -f:强制重新编译一次,即使文件的时间戳没有更新,当没有使用-f选项时,如果py文件的时间戳更早于pyc文件,不会触发编译过程;

    -x REG:根据REG表示的正则式选择文件编译。

    1.2、compileall源码模式

    compileall还提供源码方式编译py文件,同样会生成__pycache__文件夹及在该文件夹下的pyc文件。

    首先导入compileall模块,使用compileall.compile_file(‘py文件名称’)编译py文件:

    import compileall
    compileall.compile_file('test.py')
    
    -----结果:
    Compiling 'test.py'...

    另外也可以使用compileall.compile_dir(‘路径名称’)编译某个路径下的py文件:

    import compileall
    compileall.compile_dir('new')
    
    -----结果:
    Listing 'new'...
    Listing 'new\\mod'...
    Compiling 'new\\mod\\mod.py'...
    Compiling 'new\\test.py'...
    Compiling 'new\\xyz.py'...

    还有一个不常用的方法是compileall.compile_path()会编译sys.path路径下的py文件。

    2、uncompyle6 pyc转换为py文件

    2.1、安装

    可以使用uncompyle6将pyc文件转换回py文件,在Python3.8中需要额外安装uncompyle6模块:

    pip install uncompyle6

    安装之后就会在Python安装目录的scripts文件夹下生成一个uncompyle6.exe的可执行文件:

    一般在安装时添加过安装目录到环境变量下,这时就可以直接运行uncompyle6。

    2.2、uncompyle6命令行模式

    下面这个例子用命令“uncompyle6 test.pyc” 解析test.pyc文件并输出解析后的内容:

    E:\juzicode\pyc-2-py>uncompyle6  test.pyc
    # uncompyle6 version 3.8.0
    # Python bytecode 3.8.0 (3413)
    # Decompiled from: Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)]
    # Embedded file name: test.py
    # Compiled at: 2022-05-01 20:51:57
    # Size of source mod 2**32: 60 bytes
    import sys
    print(sys.version)
    # okay decompiling test.pyc

    从解析的内容可以看到使用的uncompyle6的版本号、Python的版本号、编译成pyc时的编译时间、源代码的内容等。

    上面这种命令方式只是将解析后的内容输出到控制台,如果要将解析结果生成py文件,则可以将打印输出重定向到文件里:

    uncompyle6  test.pyc  > test.py

    这样在当前目录下就生成了一个test.py文件,文件内容和前述例子打印输出内容一致。

    另外一种方法是使用-o选项+目标文件路径+pyc文件(可以是多个),在目标文件路径下输出和pyc同名的py文件:

    E:\juzicode\pyc-2-py>uncompyle6  -o .\  build.pyc  test.pyc
    build.pyc --
    test.pyc -- decompiled 2 files: 2 okay, 0 failed
    # decompiled 2 files: 2 okay, 0 failed

    2.3、uncompyle6代码模式

    先用open方法创建一个文件实例pf,再使用decompile_file(‘pyc文件’,pf)函数将pyc文件转换为py文件:

    import uncompyle6 as uc
    pf = open("test.py", "w") 
    uc.decompile_file("test.pyc", pf)

    转换后的文件和用命令行方式内容一样,包含了编译时间、Python版本、源代码等。

     

    展开全文
  • python 编译pyc以及pyc包导入使用

    千次阅读 2020-11-18 16:16:14
    python 编译pyc以及pyc包导入使用 目前做一个项目,为了保护源码,如何发布解析之后的二进制文件.pyc,给工程使用,这里做一个较为简单和详细的解释。 一、基础概念 包:一个文件夹,用来存放模块和子包。包里...
  • Python pyc文件

    2020-11-30 08:41:26
    什么是pyc文件pyc 是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python 的虚 拟机来执行的。pyc的内容,是跟python的版本相关的,不同版本编译后的...
  • pyc文件

    千次阅读 2021-05-04 16:26:10
    pyc文件是Python文件(后缀是.py)编译出来的二进制文件,能够提高加载速度,以及隐藏源代码 编译的方法: python -m py_compile file.py 比如: python -m py_compile /root/src/{file1,file2}.py 也可以写份脚本...
  • pyd和pyc

    2021-02-28 15:53:37
    我们经常看到项目代码中有一些pyc文件:如下图所示 1、pyc的全称是PyCodeObject(字节码),也就是将python源码编译成字节码,这样做的目的是加速程序的运行,所以你看到本地项目中很多.py文件编译生成的pyc文件...
  • pyc反编译

    千次阅读 2022-02-08 10:58:51
    1.将需要反编译的pyc文件放入uncompyle6文件夹中:在文件夹中cmd打开控制台,输入uncompyle6 -o 1.py1.pyc: 即可得到反编译后的py文件:
  • pyc文件反编译

    千次阅读 2022-02-13 10:22:19
    pyc文件结构 文件格式: 03f3 0d0a magic表示python的版本信息,此处03f30d0a是python2.7的标识; 6206 b160 时间戳,编译的时间信息 63 Blockde的开头 后4字节0000 0000 :argcount参数个数 后4字节0000...
  • python文件编译与pyc反编译

    万次阅读 2020-07-10 17:02:41
    pyc是编译py之后生成的二进制文件。当我们发布系统的时候不想让别人看到源代码,就需要将py文件编译生成pyc文件,对外只提供pyc文件。同样,如果拿到一个python程序,只有pyc文件,我们就无法看到源码,希望有办法反...
  • pyc 文件的使用详解 Python3

    千次阅读 2020-08-04 17:05:19
    pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的...
  • python的pyc文件

    2022-05-02 09:44:43
    这个pyc文件是在python中import自编的源文件,第一次运行时,就会在当前目录下生成一个文件夹:pycache_ 在这个文件夹中就会生成一个这个import的源文件的pyc版本。 如何使用 这个pyc版本的命名方式是原来的文件名+...
  • 如何反编译pyc文件

    千次阅读 2021-03-05 12:22:24
    如何将.pyc和.pyo文件反编译为.py文件pyc大约在python2刚出的时候有。后来就很少找得到了。有一次,不小心把.py删除了,通过pyc还把代码还原了。 你搜索uncompyle2, decompyle2, DePython, unpyc, uncompyle, pycdc...
  • Python+pyc文件编译和运行

    千次阅读 2021-12-25 09:55:22
    有时候在python代码运行结束后会产生pyc文件,有时候又不会产生。那么,到底什么时候会产生?以及pyc文件到底起什么作用?进行了梳理和总结。 首先,了解python程序的运行过程 python程序的运行依赖于解释器...
  • 如何理解.pyc文件内容

    千次阅读 2020-12-05 00:43:16
    .pyc文件包含一些元数据和一个^{}edcode对象;加载code对象并反汇编使用:import dis, marshal, sys# Header size changed in 3.3. It might change again, but as of this writing, it hasn't.header_size = 12 if ...
  • python 把代码编译成pyc文件

    千次阅读 2022-04-25 23:11:11
    pyc是一种二进制文件,是由py文件经过编译后,生成的文件。因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄漏出去吧?所以就需要编译为pyc后,再发布出去。 python提供了内置的类库来...
  • Pyc文件编译和运行

    千次阅读 2021-01-14 04:38:55
    一、编译生成pyc:(1)单个文件import py_compilepy_compile.compile(r'H:/game/test.py')(2)多个文件>>>importcompileall>>>compileall.compile_dir(r'D:\test')(3)直接通过命令来运行,可以看到...
  • python如何调用pyc

    2021-11-25 21:35:26
    import 名称 不要带pyc后缀 例如 把md5.pyc放到文件下: import md5 即可
  • python怎么打开pyc文件

    千次阅读 2021-01-28 18:12:34
    选择好后,确定打开,我们就可以看到pyc文件的内容了,中间是16进制显示,右下角我们可以看到文件是可编辑的,我们可以鼠标点选16进制的内容直接输入进行修改即可。 众多python教程,尽在云海天教程网,欢迎在线...
  • py文件转换成pyc文件

    2021-09-15 15:27:19
    py文件转换成pyc文件 pyc介绍 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高。 而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,...
  • python爬虫中pyc文件的生成和使用

    千次阅读 2021-08-24 13:36:29
    一、pyc文件是什么? python中的pyc扩展名文件,类似于Java的Class字节码文件,是由编译器编译得来的,供解释器使用; 当我们部署程序时,不想暴露源码,可以使用pyc文件; 它存在__pycache__文件里 二、生成单个pyc ...
  • py文件编译成pyc文件

    千次阅读 2020-11-28 00:11:16
    pyc介绍 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高。 而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA...
  • python py生成及调用pyc文件

    万次阅读 2021-01-27 14:16:29
    python py文件中调用pyc文件 1.生成pyc文件 # 目录下所有py文件生成pyc import compileall compileall.compile_dir('D:\python项目\ceshi') # py生成pyc文件 import py_compile py_compile.compile('proxy.py') ...
  • py转pyc文件 pyc文件转py文件

    千次阅读 热门讨论 2020-07-02 16:20:03
    生产环境中 有的时候 不想让自己写的代码泄露 可以讲py文件编译成pyc文件 两种文件使用Python执行的时候 结果一样 pyc的存在 客观上起到了保护代码 防止泄露的作用 下边说一下如何进行两种文件的转换 pyc —> py ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,207
精华内容 29,282
关键字:

pyc

友情链接: Socket.rar