我有一个简单的Python代码(3.12版本)。它只是计算用户输入的名称的 ASCII 总和:
import sys
args = sys.argv
name=args[1]
print(f"Hello, {name}!")
print("Here is some intelligence that will return a number you will NEVER understand how it is
computed :-D \n")
name = name.lower()
ascii_sum = 0
for char in name:
if char.isalpha():
ascii_value = ord(char)
ascii_sum += ascii_value
print(ascii_sum)
我已经转换成一个名为
dummy_fct.exe
的可执行文件。因为出于某种原因,我需要能够从 ipynb 笔记本调用(Python)可执行文件。
现在,我尝试从新笔记本调用此可执行文件:
import subprocess
import sys
name = input("Quel est ton nom ? ")
subprocess.run(["dummy_fct.exe", name], capture_output=True, text=True)
但出现以下错误:
CompletedProcess(args=['dummy_fct.exe', 'PDH'], returncode=1, stdout='', stderr='[4004] pyimod02_importers 的模块对象为 NULL! 回溯(最近一次调用最后一次): 文件“PyInstaller\loader\pyimod02_importers.py”,第 22 行,位于 文件“pathlib.py”,第 14 行,位于 文件“urllib\parse.py”,第 40 行,位于 ModuleNotFoundError:没有名为“ipaddress”的模块 回溯(最近一次调用最后一次): 文件“PyInstaller\loader\pyiboot01_bootstrap.py”,第 17 行,位于 ModuleNotFoundError:没有名为“pyimod02_importers”的模块 [4004] 由于未处理的异常,无法执行脚本“pyiboot01_bootstrap”! ')
我确实说我根本不明白这个错误消息......你能帮助我吗?
编辑:可执行文件是通过运行这两个命令创建的:
jupyter nbconvert --to script dummy_fct.ipynb
pyinstaller --onefile dummy_fct.py
这似乎是here报告的错误,并且已在
v5.12
中修复