精华内容
下载资源
问答
  • 加密Python源代码笔记

    万次阅读 2018-01-27 21:52:23
    本人基于项目需求,从网上搜集了一些关于Python源代码加密的内容,在此做一个总结,以供参考。加密Python源代码主要有几下方法: 将py文件编译成pyc、pyo文件进行发布 # 编译成pyc的方法如下:# 编译单个文件# ...

    本人基于项目需求,从网上搜集了一些关于Python源代码加密的内容,在此做一个总结,以供参考。

    加密Python源代码主要有几下方法:

    • 将py文件编译成pyc、pyo文件进行发布
    # 编译成pyc的方法如下:
    
    # 编译单个文件
    
    # 命令行下:
    python -m py_compile /path/to/待编译.py 
    
    # python代码:
    import py_compile 
    py_compile.compile(r'/path/to/待编译.py') 
    
    # 编译多个文件,未试验过,目测需要将待编译文件都放入一个文件夹中,且不能包含其他文件
    
    # 命令行下:
    python -m py_compile /path/to/{待编译脚本1,脚本2,...}.py
    # 或者
    python -m py_compile /path/to/
    
    # python代码:
    import compileall
    compileall.compile_dir(dirpath)
    
    # 编译成pyo的办法如下:
    # 注:pyo仅为pyc的一种优化格式,并不是说加密程度会更高
    python -O -m py_compile /path/to/待编译.py
    需要注意的是,编译成pyc或者pyo文件后需要将命名改成与源Python命名一致,将其放在源目录下,虽然其他python文件调用pyd时显示不能检测到该模块,但实际上可以运行。
    
    由于pyc的编译收到python版本的影响,所以当将编译后的pyc迁移到另一台电脑中时,最好保持python环境一致。
    
    • 打包成可执行文件

      经过简单的调查,发现pyinstaller这个打包工具比较受人欢迎,经它打包后的exe文件可以在无python的环境下运行。因此本人对此进行了测试,结果发生报错,具体报错内容忘了,但是大体意思是打包时关联内容挖掘的过深,超过最大限度,估计原因可能是项目中代码的引用内容过多,或者是引用内容的依赖包过多,导致无法成功打包。

    • 使用cpython将python代码编译成C/C++,然后再编译成python扩展模块,windows上为pyd文件,Linux上为so文件

      注:pyd文件实际就是dll文件

    # 编译成pyd的方法如下:
    
    # 命令行下:(在项目目录下打开命令行或者shell,该命令只能编译一个文件,编译之后会发现出现三个文件,yourmod.c、yourmod.html、yourmod-win_amd64.pyd,此时将c、html和原py文件删除,将pyd文件命名更改为yourmod就可以)
    cythonize -a -i yourmod.pyx
    
    # python代码:(在原项目中编写setup.py文件)
    
    from distutils.core import setup
    from Cython.Build import cythonize
    import os
    
    '''
    该文件的执行需要的在Terminal中输入   python setup.py build_ext --inplace !!!
    使用Cpython 编译python文件,关键函数编译成pyd文件(相当于dll)
    '''
    # 针对多文件情况设置,单文件就只写一个就行
    key_funs = ["yourmod1.py", "yourmod2.py", "yourmod3.py"]
    
    setup(
        name="XX app", 
        ext_modules = cythonize(key_funs),
    )
    
    '''
    1、将编译后的pyd文件的命名更改成与原py文件一致
    2、删除编译后得到的c文件和原py文件
    '''
    
    print("——————", os.getcwd(), "——————")
    
    files = os.listdir(os.getcwd())
    print(files)
    
    for fi in files:
        if fi.__contains__(".pyd"):
            re_name = fi.split(".")[0] + ".pyd"
            print(re_name)
            os.rename(fi, re_name)
        elif fi.__contains__(".c") or fi in key_funs:
            os.remove(fi)
    
    # 运行方式 在原目录的命令行下执行
    python setup.py build_ext --inplace
    
    需要注意的是pyd文件在被其它python文件调用时依然不能被识别,但能够运行,而且setup.py的文件的执行需要的在Terminal中输入   python setup.py build_ext --inplace !!!
    
    基于pyc、pyo容易破解的原因,建议使用pyd文件进行发布,但python3下pyc、pyo文件的破解本人未经试验,只是听说,故具体选择哪种方式大家可根据具体情况进行选择。
    
    展开全文
  • python源代码被解释器转换后的格式是什么?发布时间:2020-05-21 09:58:00来源:亿速云阅读:323python源代码被解释器转换后的格式是什么?针对这个问题,今天小编总结这篇有关python的文章,希望能帮助更多想解决这...

    python源代码被解释器转换后的格式是什么?

    发布时间:2020-05-21 09:58:00

    来源:亿速云

    阅读:323

    python源代码被解释器转换后的格式是什么?针对这个问题,今天小编总结这篇有关python的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。

    python源代码被解释器转换后的格式为“.pyc”。

    当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

    解释器由一个编译器和一个虚拟机构成,编译器负责将源代码转换成字节码文件,而虚拟机负责执行字节码。

    所以,解释型语言其实也有编译过程,只不过这个编译过程并不是直接生成目标代码,而是中间代码(字节码),然后再通过虚拟机来逐行解释执行字节码。

    执行 python XX.py 后,将会启动 Python 的解释器,python解释器的编译器会将.py源文件编译(解释)成字节码生成PyCodeObject字节码对象存放在内存中。

    python解释器的虚拟机将执行内存中的字节码对象转化为机器语言,虚拟机与操作系统交互,使机器语言在机器硬件上运行。运行结束后python解释器则将PyCodeObject写回到pyc文件中。

    pyc文件,文件中包含python的magic number(来说明编译时使用的python版本号)、源文件的mtime(使pyc和py文件保持同步)、编译出的code对象。

    以上就是python源代码被解释器转换后的格式的介绍内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注亿速云行业资讯!

    展开全文
  • 在我们的学习过程中,免不了要将自己的成果...我们都知道python程序保存的文件格式为.py,通过Pyinstaller库,我们可以将之转换成无需源代码的可执行文件。 PyInstaller库是第三方库 官方网站:http://www.pyinst...

    在我们的学习过程中,免不了要将自己的成果与好朋友“秀”一下?但是好朋友没有安装Python程序的解释器怎么办?别担心,Pyinstaller库帮你解决难题。

    一、Pyinstaller库概述

    我们都知道python程序保存的文件格式为.py,通过Pyinstaller库,我们可以将之转换成无需源代码的可执行文件。
    在这里插入图片描述
    PyInstaller库是第三方库

    • 官方网站:http://www.pyinstaller.org
    • 第三方库:使用前需要额外安装
    • 安装第三方库需要使用pip工具
      我们只需要:(cmd命令行) pip install pyinstaller, 就能安装好Pyinstaller库。
      在这里插入图片描述
      在这里插入图片描述

    二、Pyinstaller库的使用

    • 简单的使用:(cmd命令行) pyinstaller -F <文件名.py>

    在这里插入图片描述
    命令行窗口会跳出上述英文,皆为正常现象。同时生成的三个文件夹,“build”和“pycache”这两个我们可以大胆删除。
    “dist”文件中的文件,即是我们的程序小包裹,即无需源代码的可执行文件。

    • PyInstaller库常用参数
      在这里插入图片描述
      具体操作如上述。当然我们常用的就是“-F”参数

    • 对源代码文件关联一个图标
      有时候我们为了美观,常常会对源代码文件关联一个图标,相当于换个头像。这个时候就需要我们的“-i”参数了。
      例如:
      比如我们从百度下载了一个图标文件:tubiao.ico 。
      那么我们可以在命令窗口行执行以下命令:
      pyinstaller –i tubiao.ico –F SevenDigitsDrawV2.py
      注意格式,这样就能实现图标的关联了。
      成果展示:
      在这里插入图片描述

    Pyinstaller库还是比较简单的,你学会了吗

    展开全文
  • 一、首先为什么要使用pyd文件? 我们知道Python是一门解释型语言,当我们想让...因此当我们想保护我们的源代码(算法保护)或者防止用户篡改源代码时,可以将Python源代码编译生成.pyd库文件或者.so库文件(Windo...

    一、首先为什么要使用pyd文件?

            我们知道Python是一门解释型语言,当我们想让其他人运行我们的代码时,如果直接将.py源代码发送给他人,那么源代码将没有任何安全性可言,也就是任何一个人都可以打开源代码一看究竟,任何人都可以随意修改源代码。因此当我们想保护我们的源代码(算法保护)或者防止用户篡改源代码时,可以将Python源代码编译生成.pyd库文件或者.so库文件(Windows平台生成pyd文件,Linux生成so文件)。

    事实上,Python和Java的解释方式是相同的,只是我们表面上看Python是直接解释源代码,而实际上python解释器只会加载字节码。细心的小伙伴肯定发现了这一点,当我们import某个模块时,总是会在模块所在的目录创建一个__pycache__目录,里面存放着被加载模块的字节码文件。

    Python有以下几种类型的文件:

    • py:Python控制台程序的源代码文件
    • pyw:Python带用户界面的源代码文件
    • pyx:Python包源文件
    • pyc:Python字节码文件(可通过逆向编译来得到源码)
    • pyo:Python优化后的字节码文件(可通过逆向编译来得到源码)
    • pyd:在Windows平台上Python的库文件(Python版DLL)
    • so:在Linux平台上是so文件

    二、生成pyd/so库文件

    代码(文件名py2c.py):

    import Cython.Build
    import distutils.core
    
    def py2c(file):
        cpy = Cython.Build.cythonize(file) # 返回distutils.extension.Extension对象列表
    
        distutils.core.setup(
    	    name = 'pyd的编译', # 包名称
    	    version = "1.0",    # 包版本号
    	    ext_modules= cpy,     # 扩展模块
    	    author = "kdongyi",#作者
    	    author_email='kdongyi@163.com'#作者邮箱
    	)
    
    if __name__ == '__main__':
    	
        file = "train_gpu.py"
        py2c(file)

    如何执行:

      在命令行执行如下代码:

    python py2c.py build_ext --inplace

    在Windows平台执行结果:

    生成如下文件:

    在Linux平台执行结果:

    生成如下文件:

    三、使用pyd/so库文件

     在命令行输入:

    python

    然后导入我们生成的库文件模块:

    import train_gpu
    train_gpu.main()

    注:train_gpu.main()  其中main()为train_gpu.py中的一个函数。

    展开全文
  • VS2005编译Python源代码

    千次阅读 2015-05-27 10:12:19
    一、下载Python源代码 https://www.python.org/downloads/source/ 下载2.5.6版本的Python源代码压缩包,然后解压,得到以下Python的源代码文件夹 二、其中的PC,PCbuild,PCbuild8分别提供了VC++6.0,VS2003,VS...
  • 如何汉化并编译 Python 源代码

    千次阅读 2019-11-12 07:47:50
    如何汉化并编译 Python 源代码前言参考文章我的工具关键字汉化其他源代码汉化Linux 下...笔者孤陋寡闻,刚开始汉化的时候只知道 GCC 且 GCC 不支持中文,所以没有选择汉化源代码方式,而是采用替换式表层汉化方...
  • 它能够在运行时时刻保护python脚本的二进制代码不被泄露,可以设置加密后python源代码的有效期限,绑定加密后python源代码到硬盘、网卡等硬件设备。 1 目录结构 2 代码实现 import os import time source_flag = ...
  • python源代码文件加密

    千次阅读 2019-08-21 12:53:40
    pyc文件是py文件经过编译后生成的二进制文件,因此可以发布pyc文件以隐藏源代码。pyc文件拥有更快的加载速度,执行速度没有区别。pyc是一种跨平台的字节码,pyc的内容是跟python的版本相关的,不同版本编译后的pyc...
  • 所谓编译执行就是源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次运行时无需重新编译。不过它是针对特定CPU体系的,这些目标代码只能在特定平台执行,如果这个程序需要在另外一种 ...
  • Python运行源代码

    2015-03-26 12:50:35
    第一步:编写Python源代码 第二步:dos下python 文件名 这是在windows下运行的,python首先将源代码编译成字节码文件,然后将字节码文件用python解释器去执行。 对于源代码中的每一行代码,也就是以分号结束的一...
  • python源代码加密

    千次阅读 2019-05-09 14:07:47
    pip install cython yum install python-devel yum install gcc 加密代码为setup.py: 在虚拟中,建立项目的虚拟环境,启动该环境;...将此代码放入项目根目录下;...使用python setup.py执行,结束后查...
  • python源代码编译(基于centos7)

    千次阅读 2016-12-19 13:54:06
    如何快速的搭建python源代码的开发环境? 基础环境:centos7.1 1、获取源代码 git镜像 python官方ftp服务器 以2.7.5为例子 wget https://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz 2、生成编译目录 你...
  • 如何编译python源代码

    2020-09-18 10:38:58
    一、 py_compile ... 以 hello.py 为例,源代码如下: def hello(): print("Hello, World!") 编译hello.py的命令是:python -m py_compile hello.py 编译成功之后,在当前路径的__pycache__ 文件夹下,...
  • 编译Python源代码

    千次阅读 2016-06-29 18:15:48
    在日常生活中,Python代码一般是不编译的,几个py文件复制来就能用。再加上脚本语言的名头,有些不太了解Python的朋友就以为Python没有编译这个过程。其实,虽然Python是脚本语言,但它与Java和C#一样,只能执行字节...
  • 介绍Python代码混淆工具,可以对源代码进行混淆处理,保证功能不变但代码基本不可读。 注意大部分混淆工具都是可逆的,例如编译生成pyc文件可以用https://github.com/wibiti/uncompyle2来解码。 pyminifier ...
  • 解决python源代码中编码问题

    千次阅读 2015-10-19 21:07:42
    python源代码中如果含有中文字节,则有可能在执行过程中出现错误。这个原因是源代码的编码方式不同。 解决方法是在源代码开头前两行增加一条语句 #-*- coding: UTF-8-*- 或者 #coding:utf8   PS:这一句代码必须加...
  • Python 标准库中提供了一个名为 compileall 的库,可以轻松地进行编译。 优点: 简单方便,提高了一点源码破解门槛 平台兼容性好,.py 能在哪里运行,.pyc 就能在哪里运行 缺点ÿ...
  • Python源代码保密、加密、混淆

    万次阅读 2018-04-23 15:17:09
    有时候用Python开发一些功能但不希望用户得到源代码,就希望对Python代码加一些保密措施。目前可行的方案可能是将核心代码用cython编译成os文件。分析如下: 1.用pyc或pyo文件代替 生成方式看这里。Python作为...
  • 目标:在windows 10系统上,通过vba程序调用python源代码 1、准备好python源代码,比如test.py 2、创建vba程序,使用shell方法执行dos命令: cmd /k,可以保持dos窗口不关闭 用&符号,连接多个dos命令,连接...
  • Python源代码目录结构

    千次阅读 2007-07-23 09:59:00
    Demo Demo用的代码,主要用来展示Python的一些应用 Doc Python的UserManual。Latex格式的 Grammar
  • python编译过程和执行原理(1)python执行原理这里的解释执行是相对于编译执行而言的。我们都知道,使用C/C++之...但是对于Python而言,python源码不需要编译成二进制代码,它可以直接从源代码运行程序。当我们运行...
  • python源代码要在没有安装/配置Python相关开发环境的电脑上运行,那么就需要使用工具对源代码进行打包,在windows上运行则必须打包成exe可执行文件,现在常用的打包工具有: py2exe,PyInstaller以及cx-Freeze0 ...
  • 转:编译Python源代码

    千次阅读 2010-07-18 13:11:00
    在日常生活中,Python代码一般是不编译的,几个py文件复制来就能用。再加上脚本语言的名头,有些不太了解Python的朋友就以为Python没有编译这个过程。其实,虽然Python是脚本语言,但它与Java和C#一样,只能执行字节...
  • Python源代码中使用中文编码

    千次阅读 2008-01-06 16:18:00
    当在Python源代码中使用中文字符串时,如果没有指定编码格式,运行会出错,必须在第一行或者第二行加上# coding=gbk 才能够正常运行。参见:http://www.python.org/dev/peps/pep-0263/
  • vs2010编译python3.5.4源代码

    千次阅读 2017-08-24 11:19:55
    vs2010编译python3.5.4源代码
  • 最近接触 pyinstaller 比较...我的运行环境为: pyinstaller 3.3.1 python 3.6.1 windows 10 安装pyinstaller 使用pip 命令安装 pip install pyinstaller 使用 pyinstaller打包代码 最简单的用法就是pyin...
  • Python做的拼图,需要拼图的图片可自选更换,程序运行截图: import simpleguitk as simplegui import random baymax = simplegui.load_image('img_3518.jpg') width = 500 height = width + 100 # 定义图像块...
  • python | 源代码加密

    2019-07-24 15:00:24
    python 程序代码加密 1.python代码文件进行转换, cython myscript.py --embed #把python代码转换成c代码 2.生成后缀为 .c的c语言的源文件, gcc编译成二进制可执行文件: gcc python-config --cflags -o hello...
  • python源代码中需要加入中文注释

    千次阅读 2012-04-16 21:02:37
    py源代码文件中如果有中文注释会运行错,在开头加入字符声明就OK了 如: # coding=gbk ''' Created on 2012-4-15 @author: dengjian ''' class Handler: """ 处理从Parser调用的方法的对象 这个解析器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 235,522
精华内容 94,208
关键字:

python源代码执行方式

python 订阅