2016 - 2024

感恩一路有你

c调用python python有没有办法能够编译成DLL文件?

浏览量:2345 时间:2021-03-12 07:30:13 作者:admin

python有没有办法能够编译成DLL文件?

通用情况下,没有什么好办法能把python编译成dll,因为python是解释型语言,dll是编译后的二进制文件,2者不在一个次元。除非你把python的解释器也打包进你的工程,并在你的exe里调用。但某些特殊情况下,也有把python的代码编译成dll文件的方法,在.net环境下,可以用IronPython这个工具,它可以把python代码编译成dll。

我现在想把自己写的python模块源代码封装成dll,然后在别的python脚本里调用,可以吗?

只是加密的话,将.py源码转换成.pyc的字节码文件就可以。最简单的用例是,假设自己写了个my_lib.py文件,在main.py中import,运行:# File: main.pyimport my_lib...然后会发现当前目录下生成了my_lib.pyc文件。把my_lib.py文件移到别处,只保留my_lib.pyc的情况下,main.py也可以正常运行。my_lib.pyc就是题主需要的“加密”版本。在明白了原理以后,也可以用命令直接生成.pyc文件:python -m compileall my_lib.py就可以得到my_lib.pyc了。

既然Python是用C实现的,那为什么Python不能直接生成exe呢?

C语言其实是一种比较“古老”而且“底层”的语言。其执行效率,仅次于汇编语言。

说其古老,是因为C语言的出现很早。

虽然Fortran、Cobol语言出现比C语言更早,但是现代主流操作系统(Windows、Mac Os、linux、iOS、Android、Unix)全部脱胎于C语言。

说它底层,是因为C语言设计之初就是为了同时编写汇编语言。理论上可以全部用汇编写。而汇编语言是执行效率最高的语言。

所以Python用C语言写一点也不奇怪。这和它能不能生成Exe一点关系都没有。

Exe文件是Windows平台的私有格式。最简单的Exe是Com可执行文件。Exe文件实际上是一个引导程序 一个解释程序组成的。

Python语言生成的代码,只需要配以引导程序和解释程序,就可以作为Exe文件执行。

所以,Python生成Exe文件一点难度都没有。只是它愿不愿意提供的问题。

python有没有办法能够编译成DLL文件?

1. 有 2. 不可以打包出问题几乎必定不是因为py源码的模块没打进去,而是因为其C扩展或者绑定的dll没打进去。而目前就没有哪个玩意既能和CPython一样提供相同的C扩展接口,同时还能自动处理好这些个dll依赖。换句话说,你用pyinstaller能打包的东西,用其他玩意也能很好打包/编译;反之也不太行,并且很多情况下是不可行。因此正确的姿势是,好好看看各种打包工具的文档,当打包有依赖时,把这些个依赖好好写进打包的配置文件。当然,更省事的办法是带着site以及解释器的dll,然后用C/C 写个壳。类似于sublime那样的做法。

如何用Python开发微软的动态链接库dll?

DLL一般还是用C或C 语言开发较多。你如果只会python,这可能就不太好弄了。

你只需要学会简单的生成DLL就行,然后在DLL里加载PYTHON脚本,实现你想要的功能,然后把这个DLL给其他人用即可。

但是显然,你这个DLL要依赖python的DLL(比如python27.dl),同时还要依赖python的运行库(import时用的)。

但是即使是弄好这些,你把这个给别人去用,这还是体积有点大。因为一共差不多要20多M大小。

如果你只是实现了一个小功能,这个给别人用还是不太合适。

解释型语言都有这种问题。

就比如JAVA语言开发个小功能,想把这个封装成DLL,然后给别人用,可以用JNI。这也需要把JRE目录拷出去。当然你在别人电脑安装JRE也行,但太麻烦了,因为一般的用户不是服务器,不一定装JRE。

所以综合来看,你如果想开发这个DLL,还是先用C或者C 写个DLL,然后里面动态执行python脚本,再附带下python运行库,给别人用就行了。

如果涉及的语言多,应该可以考虑用COM组件技术开发。

如何将python程序打包为exe?

  1. 具体用法为,假设有一个helloworld.py的python脚本,把其转换为独立运行的exe程序,并运行在没有安装python的windows系统上。那么首先要做的是写一个用于发布程序的设置脚本例如mysetup.py,在其中的setup函数前插入语句import py2exe

  2. 示例脚本:#mysetup.py

    from distutils.core import setup

    import py2exe

    setup(console=["helloworld.py"])

    然后在命令行中执行如下语句:

    python mysetup.py py2exe

  3. 以上命令执行完成后,会产生一个名为dist的子目录,其中包含了helloworld.exe,python24.dll,library.zip这些文件。具体发布时要将这个目录中的文件一起打包发布,在没有安装Python的Windows系统中直接运行helloworld.exe即可

  4. 以上的mysetup.py脚本创建了一个控制台的helloword.exe程序,如果需要创建图形用户界面的程序,只需要将mysetup.py中的console=["helloworld.py"]替换为windows=["myscript.py"]既可;另外需要注意的是,py2exe一次能够创建多个exe文件,仅需要将这些脚本文件的列表传递给console或windows的关键字参数

c调用python python编译成dll文件 怎样将Python转换成dll文件

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。