python的脚本文件的扩展名是pyd

python的脚本文件的扩展名是pyd,第1张

扩展名说明

1、通常写Python脚本都是以.py为扩展名,.pyc二进制文件可以反编译成.py文件。

2、反编译软件叫EasyPythonDecompiler,可以反编译一个文件,也可以是一个文件夹。

本例在centos7测试通过

1、首先安装pyinstaller 及Cython

pip install pyinstaller

pip installer Cython

2、本例中文件结构

.其中config.cfg为配置文件,datacheck.py为入口文件,file_config.py、method.py为需要引入文件。

├── config.cfg

├── datacheck.py

├── file_config.py

├── method.py

3、编辑build_pyd.py文件,内容如下:

from distutils.core import setup

from Cython.Build import cythonize

setup(

    name='datacheck',

    ext_modules=cythonize(["method.py", "file_config.py"])

    )

注意 ext_modules只填写引入文件,主运行文件不能写。

编辑后文件结构如下:

├── build_pyd.py

├── config.cfg

├── datacheck.py

├── file_config.py

├── method.py

4、生成so链接文件(如在windows则为pyd文件,未测试)

# python3 build_pyd.py build_ext --inplace

正常情况下会引入文件会生成so文件,文件结构如下:

.

├── build

│   └── temp.linux-x86_64-3.7

│      ├── file_config.o

│      └── method.o

├── build_pyd.py

├── datacheck.py

├── file_config.c

├── file_config.cpython-37m-x86_64-linux-gnu.so

├── file_config.py

├── method.c

├── method.cpython-37m-x86_64-linux-gnu.so

└── method.py

可以新建tmp目录,将datacheck.py及新生成的两个so文件拷贝,并针两个so文件 cpython-gnu去掉。tmp下文件结构如下:

├── datacheck.py

├── file_config.so

└── method.so

5、运行pyinstaller,生成二进制文件

# pythinsatller -F datacheck.py

加-F指生成单个文件。

6、修改datacheck.spec文件

在hiddenimports=加入引入的文件,如不加入,运行程序的时候会有如下提示:

Traceback (most recent call last):

  File "datacheck.py", line 7, in <module>

  File "file_config.py", line 1, in init file_config

ModuleNotFoundError: No module named 'method'

7、再次运行pyinstaller,生成新的二进制文件

# pyinstaller datacheck.spec

8、拷贝dist目录下的二进制文件,使用原来的cfg文件,即可单独运行。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/12022170.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存