注:本文代码只为介绍源码保护方法,不涉及免杀姿势。...混淆后的代码使用 __import__ 动态导入模块、使用 getattr 调用类方法,这样就可以以字符串方式传入模块名和方法名,借由字符串翻转拼接、数字计算等方式达到混淆目的,相比之下,AST 方式的混淆效果明显要优于...pyconcrete 库需要在其他库之前导入,它会自动和其他模块挂钩,在其目录寻找 pye 文件,然后通过 _pyconcrete.pyd 对 pye 文件进行解密。...原本是为了解决 Python 语言的效率问题,但由于其有专门的转换器可以将 .py 文件转换为 .c 文件 (自动加入大量 C-Python API ) 后编译为 pyd,因此也可以利用这个特点来保护...python build_pyd.py build_ext --inplace 可以直接运行。 也可以打包为 exe,Pyinstaller 会自动将 pyd 文件作为依赖导入。
这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。 而Python语言写的程序不需要编译成二进制代码。...在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行,因此你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了。...至于为什么要有.pyc文件,这个需求太明显了,因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄漏出去吧?所以就需要编译为pyc后,再发布出去。...最后介绍的是.pyd文件,.pyd文件并不是使用python编写而成,.pyd文件一般是其他语言编写的python扩展模块。...(之前又在网上看到过有关解释,.pyd文件是用D语言按照一定的格式编写,并处理成二进制文件。那么什么是D语言呢??
pyd 这个 d 就是取自于 DLL,只能运行在 windows 系统上。...使用该 pyd 方式如下: import demo from demo import {{类名|函数名}} pyc 特点及生成方式 而我们安装的 python 目录下有许多 pyc 文件,这个 c 是编译...由于 .pyc 文件是编译好的字节码,它是独立于平台的,因此可以在不同体系结构的计算机之间共享。...Pycharm 文件目录默认不索引pyc pyc 文件放到 Pycharm 中并不会显示它的存在?,但是确实实在存在于我们的文件夹之中的。...Pycharm 中文件目录 文件浏览器中文件目录 这是为什么呢?
),然后将.pyc文件放在python虚拟机上运行,这里的python虚拟机就是所谓的“python解释器”。...每一个以py结尾的python源代码文件都是模块,其中那个启动后能够运行整个程序的文件叫顶层文件。而顶层文件导入其他模块(文件),必须找到文件然后将其编译成字节码,并且运行字节码。...(严格而讲,只有文件导入的情况下字节码才会保存,并不是对顶层文件)。如果想生成test.pyc,我们可以使用python内置模块py_compile来编译。...下为.pyd文件),该文件可以 直接import进入Python session。...但是,我的电脑在使用这种方法的时候,失败了,可能是VS环境的原因吧,所以我采用了第一种方法,直接编译了一个pyd文件使用。
,在我们的核心模块 core_work.py 中导入: from lock import lock def somefunc(): lock() # do your work 在需要...你可能还需要一个 startup.py 脚本来启动整个程序: from core_work import main main() 3、编译 pyd 不编译的话,或者编译为 pyc 的话,上面的工作等于没做...,然后把源代码 lock.py 和 core_work.py 删除,其实就可以发布了,想破解只能反编译 pyd 文件,得到的是汇编代码,这个门槛已经拒绝了大多数的人。...如果不放心的话,那就 pyinstall -k key startup.py 再加密打包一下,key 就是加密的密码,如果在 pyd 文件 import 了第三方库,那么要在 spec 文件中填写 hiddenimports...然后在 build 文件夹就可以看到编译好的 pyd 文件,然后把他们移动到源代码的位置,重命名为 xxx.pyd 就可以了。 最后的话 以上编程技巧,简单实用,如果有帮助,还请点赞、在看、转发支持。
预警,下面两段话是将 pyd 和 pyc 原理的,解释为什么 pyc 能跨平台,不感兴趣的同志可以跳过~ 我们知道 windows 系统有许多 DLL 后缀的文件,即动态链接库,在运行时链接到调用程序。...pyd 这个 d 就是取自于 DLL,只能运行在 windows 系统上。...而我们安装的 python 目录下有许多 pyc 文件,这个 c 是编译 compile 过的意思,可以使用 python 解释器编译 py 文件 成 pyc 字节码文件。...由于 .pyc 文件是编译好的字节码,它是独立于平台的,因此可以在不同体系结构的计算机之间共享。 使用下面一行命令就能将当前目录下的所有 py 文件打成 pyc。...,但是确实实在存在于我们的文件夹之中的。 Pycharm 中文件目录 文件浏览器中文件目录 这是为什么呢?
2、头文件 代码中我们导入了这样一个头文件 #include 这会导入 Python API(如果你喜欢,你可以在这里添加描述模块目标和版权信息的注释)。...注解:由于 Python 可能会定义一些能在某些系统上影响标准头文件的预处理器定义,因此在包含任何标准头文件之前,你 必须 先包含 Python.h。...查看 提取扩展函数的参数 来了解这个宏的更多内容。 除了那些已经定义在头文件中的之外,所有用户可见的符号都定义在 Python.h 中,并拥有前缀 Py 或 PY 。...3、编译使用 在Windows下面,在Visual Studio命令提示符下编译这个文件的命令是 cl /LD great_module.c /o great_module.pyd -IC:\Python27...编译成功后在当前目录可以得到 great_module.pyd(实际上是dll)。这个pyd可以在Python环境下直接当作module使用。
方法1:在Pycharm自带的库中下载(暂且这么叫吧,如下图) 这个方法我也是看别人说的,自己还没试过,描述也没介绍版本啥的,所以个人也不推荐… 方法2: 就是opencv官网介绍的安装方法,...)的 .pyd文件(cv2.cp37-win_amd64.pyd)。...),重命名为 cv2.pyd 3)在Pycharm相应的解释器下就可以使用opencv了 但是这个方法不知道为什么在conda管理器下不显示已安装,不知道为什么会这样,可能哪里没弄好,所以我也没用这个方法...方法3: 用Anaconda包管理器里面的库安装opencv,但是这个方法一个弊端就是安装的opencv最高版本只是3.4版本 所以也不推荐这个方法,当然如果对opencv版本没要求的话可用这方法...:L_by_D的博客 1)先去这个网站:用于python扩展包的非官方Windows二进制文件下载对应的opencv版本的 .whl 文件 下载后放在你环境下面的…\Lib\site-packages
但是不推荐这种方法,据说这在后期会有无数莫名其妙的问题。...如果你没有安装VS2008,一般都会碰到这个问题。...python setup.py build 为什么还是报同样的错误?? 3、手动改写注册表 这里要考虑你的python是32位还是64位的。 打开regedit。...项目目录中新增了一个build文件夹: ? build.jpg 我们用的时候只需要Extest.pyd文件即可。其实本质上就是.dll动态链接库。...在终端运行: swig -python example.i 如果编译的是C++文件,需要加上-C++选项: swig -c++ -python example.i 运行完这个命令后,在工作目录里会出现example_wrap.c
因此为了提高加载效率,Python 在程序执行结束后会把每个文件的字节码写入到硬盘中保存为 xxx.pyc 文件,这样下一次再执行这个程序时先在目录下找有没有xxx.pyc 文件,如果有这个对应文件且修改时间和...图片 点击*号就会跳到对应的__init__.pyi文件,这个文件里按照PEP484规定,为os模块每个函数都定义了对应的类型检查规则。...hello.pyw print("hello") 图片 那为什么还要有pyw文件呢?...但是我感觉这个pww格式用处并不大,实际使用很少有人双击py或者pyw文件来运行 Python 代码。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
为什么使用Cython?Python是一种解释型的动态语言,虽然易于学习和使用,但在执行效率上相对较低。特别是在处理大量数据、进行复杂计算或需要高性能的任务时,Python的执行速度可能会成为瓶颈。...在setup.py文件中,我们使用cythonize函数将hello.pyx文件编译为C代码。...)的共享库文件,可以在Python中导入并使用。...)的共享库文件,可以在Python中导入并使用。...与Cython相比,Numba更注重对数值计算代码的优化,可以通过装饰器的方式直接对Python函数进行加速。
python中可以import的有module和package: 1、module 模块 通常模块为一个文件,直接使用 import 文件名 就可以导入。...可以作为module的文件类型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。...包中可以有模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。...即导入的过程也是执行的过程。 3)、创建一个名为源代码文件的对象,该对象引用模块的名字空间,这样就可以通过这个对象访问模块中的函数及变量。...) c = people.Speak() 3.2 我们还可以使用 from people import Speak的方式导入,from语句不创建一个到模块名字空间的引用对象,而是把被导入模块的一个或多个对象直接放入当前的名字空间
1. import的用法 绝对导入,主要用于导入sys.path的包,以及运行入口文件导入自己的模块。...第二个地方就是运行文件所在的目录。 可以作为module的文件类型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。...当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。...相对导入,主要用于非运行入口文件导入自定义模块 from . import module_name 导入和自己同目录下的模块。...当一个py文件自己运行时,__name__就是__main__,当这个文件作为模块被调用时,__name__就是文件的名字。 对于一个类来说,__name__就是类的名字。 6.
在某些对计算性能有高要求的领域,如科学计算、数据处理等,这个问题就变得尤为重要。为了解决这个问题,一种名为Cython的语言应运而生。...我们可以通过以下步骤完成这个过程: 编写一个setup.py文件:这个文件将指导Cython如何编译我们的代码。...ext_modules = cythonize("example.pyx") ) 在这个文件中,我们使用cythonize函数来指定我们想要编译的Cython文件。...(在Unix系统)或example.pyd(在Windows系统)的文件。...这个文件是我们的Cython代码编译后的结果。
目录 1 为什么需要多语言联合编程?...的主要方式 2.1 SWIG 2.2 Boost::Python 2.3 ctypes 3 Boost::Python安装 4 测试实例:python继承C++接口 5 常见问题 6 参考文档 1 为什么需要多语言联合编程...二进制文件,将该文件置于工程目录下(与helloworld.py在同一个目录),在helloworld.py中导入接口,测试多态: import hello base = hello.Base() #...BOOST_PYTHON_STATIC_LIB 6 参考文档 Boost::Python官方文档 Boost::Python下载官网 ---- 更多精彩专栏: 《ROS从入门到精通》 《机器人原理与技术》 《机器学习强基计划》 《计算机视觉教程...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
生成不自定义图标的exe文件 4.生成带自定义图标的exe文件 PyInstaller 会对脚本进行解析,并做出如下动作: 内部流程 背景: Python 程序都是脚本的方式,一般是在解析器里运行,如果要想要给别的计算机使用...生成不自定义图标的exe文件 pyinstaller -F -w game.py (-F表示打包单个文件,-w是为了打开exe时候不弹出黑框) 4.生成带自定义图标的exe文件 ?...产生单个的可执行文件 -D,--onedir 产生一个目录(包含多个文件)作为可执行程序 -a,--ascii 不包含 Unicode 字符集支持 -d,--debug 产生 debug 版本的可执行文件...如果没有指定,则默认使用当前目录来生成 spec 文件 -p DIR,--path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。...名字的含义:我想有一天我能有能力随心所欲不逾矩,不总是向生活低头,有能力让家人拥有富足的生活而不是为了生计而到处奔波。“世人慌慌张张,不过是图碎银几两。
如在7天后还未支付,将永久无法恢复,不过这个病毒制造者也比较人道,半年后会给付不起赎金的穷人推出抽奖活动,如果运气好可以免费恢复。 我为什么会中毒的?...“永恒之蓝”是Windows平台的一个系统漏洞,它会发送恶意代码到大量联网计算机,并扫描开放了445文件共享端口的Windows机器,只要被扫描的机器开放了445这个端口,无需用户任何操作,只要开机上网...,不法分子就能在电脑和服务器中植入各种恶意软件、远程控制木马、虚拟货币挖矿机等恶意程序,“勒索病毒”也就是通过这个漏洞感染到了大量的机器之中。...打开电脑,摁“Ctrl+R”打开运行,输入“gpedit.msc”回车,找到“计算机配置→Windows设置→安全设置→IP安全策略”右键单击,选择“所有任务→导入策略”,选择下载好的配置文件导入即可。...导入成功后,右键单击已导入的安全策略,选择“分配”。 3. 配置好安全策略后,相关,重启电脑就OK了。
木兰图标 而且在安装后的文件夹里,出现了大量的 “.pyd” 文件 —— 这正是 Python 语言常见的文件格式。...木兰语言在 8 位单片机上的编译器是本团队开发的,在 32 位单片机上的编译器是基于 Python 开源编译器进行的二次开发,但在接受采访中将木兰编程语言和编译器夸大为完全自主开发。...但木兰套壳 Python 却号称 “自主研发”(这种涉嫌嘲讽程序员智商)的行为,显然让很多程序员觉得自尊受到了践踏:你套壳就说套壳嘛,为什么还要说是自主研发?你忘了要面对的可是明察秋毫程序员吗?...我们在应用层级的开发创造并不弱,但是为什么一定要去顶国产自主研发的帽子呢?...最后,我们想说,在现在的局势下,我们非常需要也非常期待自主研发,但套壳、造假不是出路,我们需要的是能够沉下心来潜心研究、不投机取巧的 “自主研发”。
木兰图标 而且在安装后的文件夹里,出现了大量的“.pyd”文件——这正是 Python 语言常见的文件格式。 ?...木兰语言在8位单片机上的编译器是本团队开发的,在32位单片机上的编译器是基于Python开源编译器进行的二次开发,但在接受采访中将木兰编程语言和编译器夸大为完全自主开发。...但木兰套壳Python却号称“自主研发”(这种涉嫌嘲讽程序员智商)的行为,显然让很多程序员觉得自尊受到了践踏:你套壳就说套壳嘛,为什么还要说是自主研发?你忘了要面对的可是明察秋毫程序员吗?...我们在应用层级的开发创造并不弱,但是为什么一定要去顶国产自主研发的帽子呢? ?...最后,我们想说,在现在的局势下,我们非常需要也非常期待自主研发,但套壳、造假不是出路,我们需要的是能够沉下心来潜心研究、不投机取巧的“自主研发”。
简介 & 安装 py2exe 是一个将 python 脚本转换成 Windows 上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装 python 而在 Windows 系统上运行这个可执行程序...默认情况下,py2exe 会在 dist 下创建以下这些文件: 1、一个或多个 exe 文件; 2、几个 .pyd 文件,它们是已编译的扩展名,是 exe 文件所需要的; 3、python**.dll...,加上其它的 .dll 文件,这些 .dll 是 .pyd 所需要的; 4、一个 library.zip 文件,它包含了已编译的纯的 python 模块如 .pyc 或 .pyo; 扩展 setup...py2exe_py2 来安装兼容 python2 版本; 2、若在 python3.6 版本下运行报错,请切换到 python3.4 尝试; 3、python3 如果是 64 位,生成的 exe 只能在...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
领取专属 10元无门槛券
手把手带您无忧上云