我尝试从 Python 代码创建 .exe。这是我的 .spec : # -- 模式:python ;编码:utf-8 --
from PyInstaller.utils.hooks import copy_metadata
datas = [("C:/Users/pierr/OneDrive/Bureau/Projet_perso/Traitement BPU 2.1/BT42.xlsx","."),
("C:/Users/pierr/OneDrive/Bureau/Projet_perso/Traitement BPU 2.1/finetuned_camembert/*", "finetuned_camembert"),
("C:/Users/pierr/OneDrive/Bureau/Projet_perso/Traitement BPU 2.1/donnees_embeddings.npy","."),
("C:/Users/pierr/OneDrive/Bureau/Projet_perso/Traitement BPU 2.1/donnees_gagnanteslabels.xlsx","."),
("C:/Users/pierr/OneDrive/Bureau/Projet_perso/Traitement BPU 2.1/données_gagnants_labels_sans_autres.xlsx","."),
("C:/Users/pierr/OneDrive/Bureau/Projet_perso/Traitement BPU 2.1/données_test.xlsx","."),
("C:/Users/pierr/OneDrive/Bureau/Projet_perso/Traitement BPU 2.1/exemple.png","."),
("C:/Users/pierr/OneDrive/Bureau/Projet_perso/Traitement BPU 2.1/venv/lib/site-packages/sentencepiece/*","sentencepiece")]
datas += copy_metadata('tqdm')
datas += copy_metadata('transformers')
datas += copy_metadata('regex')
datas += copy_metadata('sacremoses')
datas += copy_metadata('requests')
datas += copy_metadata('packaging')
datas += copy_metadata('filelock')
datas += copy_metadata('numpy')
datas += copy_metadata('tokenizers')
datas += copy_metadata('importlib_metadata')
block_cipher = None
a = Analysis(['main.py'],
pathex=["C:/Users/pierr/OneDrive/Bureau/Projet_perso"],
binaries=[("C:/Users/pierr/Documents/Lib/site-packages/torch/lib/torch_python.dll", "."),
("C:/Users/pierr/Documents/Lib/site-packages/torch/lib/torch_cpu.dll", "."),
("C:/Users/pierr/Documents/Lib/site-packages/torch/lib/c10.dll", "."),
("C:/Users/pierr/OneDrive/Bureau/Projet_perso/Traitement BPU 2.1/venv/Lib/site-packages/sentencepiece/_sentencepiece.cp37-win_amd64.pyd", "."),
("C:/Users/pierr/AppData/Local/Packages/PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0/LocalCache/local-packages/Python39/site-packages/tensorflow/python/_pywrap_tensorflow_internal.pyd", ".")],
datas=datas,
hiddenimports=["scikit-learn", "tqdm", "transformers", "sentencepiece"],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True , icon='C:/Users/pierr/Downloads/logo_sef.ico')
这是我启动 .exe 时遇到的错误:(venv) C:\Users\pierr\OneDrive\Bureau\Projet_perso\Traitement BPU 2.1\dist>main.exe
尚未找到 PyTorch、TensorFlow >= 2.0 或 Flax。模型将不可用,只能使用标记器、配置和文件/数据实用程序。
回溯(最近一次调用最后一次):
文件“main.py”,第 8 行,位于
文件“PyInstaller\loader\pyimod02_importers.py”,第 385 行,在 exec_module 中
文件“core_2.py”,第 29 行,位于
文件“transformers\utils\import_utils.py”,第 1026 行,位于 getattribute
文件“transformers\utils\import_utils.py”,第 1014 行,在 require_backends 中
导入错误:
CamembertTokenizer 需要 SentencePiece 库,但在您的环境中找不到它。查看
上的说明
其存储库的安装页面:https://github.com/google/sentencepiece#installation并按照以下步骤操作
符合您的环境。请注意,安装后您可能需要重新启动运行时。
[46776] Failed to execute script 'main' due to unhandled exception!
创建一个.exe,就不会出现此错误。