我正在为我的学士论文开发一个简单的勒索软件脚本,以了解不同的防火墙制造商如何解决威胁保护/预防。我使用 cryptography.fernet 编写了一个简单的 python 脚本来生成密钥并加密一些示例文件。要在尚未安装 python 的测试机器上运行我的脚本,我需要构建一个 .exe 并执行它。我尝试了不同的模块,例如 pyinstaller,但 Windows Defender 立即触发了警报。但是我设法使用 py2exe 解决了这个问题。我已经创建了 python 脚本并且一切正常,直到我构建 .exe 文件。
执行以下命令时收到 4 个错误:python setup.py py2exe
4 missing Modules
-----------------
? _posixshmem imported from multiprocessing.resource_tracker, multiprocessing.shared_memory
? bcrypt imported from cryptography.hazmat.primitives.serialization.ssh
? readline imported from cmd, code, pdb
? resource imported from test.support
由于某种原因,.exe 文件将在dist文件夹中构建,但当我开始执行文件时无法正常工作。控制台出现一毫秒然后消失。示例文件仍然可读。我试图注释掉几乎所有内容,但我仍然遇到同样的问题。我认为上面使用的一些模块与py2exe不兼容...
我的setup.py是:
from distutils.core import setup
import py2exe
import os
import time
import getpass
import pathlib
import ctypes
from cryptography.fernet import Fernet
setup(console=['dll32.py'])
我使用命令提示符启动 .exe 并收到以下错误:
C:\Users\dj\Desktop\win64\dist>dll32.exe
Traceback (most recent call last):
File "dll32.py", line 6, in <module>
File "<frozen zipimport>", line 259, in load_module
File "cryptography\fernet.pyc", line 16, in <module>
File "<frozen zipimport>", line 259, in load_module
File "cryptography\hazmat\primitives\padding.pyc", line 11, in <module>
File "<frozen zipimport>", line 259, in load_module
File "<loader>", line 10, in <module>
File "<loader>", line 8, in __load
ImportError: (No module named '_cffi_backend') 'C:\\Users\\dj\\Desktop\\win64\\dist\\cryptography.hazmat.bindings._padding.pyd'
我正在使用Python 3.9.4
感谢您的时间。