在c#/.NET环境中运行pythonnet时如何从pywin32导入win32api?

问题描述 投票:0回答:1

我正在使用 pythonnet 将 Python 与 C#/.NET 运行时集成,但我一直遇到

win32api
的模块导入错误。错误消息是“没有名为‘win32api’的模块。”我已经采取了一些故障排除步骤,但尚未解决问题。

我尝试过的:

  1. 已验证的环境路径。
  2. 使用 Python(.NET 之外)运行测试脚本,没有任何问题。
  3. 创建了虚拟环境(venv)。
  4. venv\Lib\site-packages\pywin32_system32
    PYTHONPATH
    变量添加了路径
    PATH

这些路径包括两个关键 DLL 的位置,但这并没有解决错误。添加到系统环境的其他路径包括

venv\Lib\site-packages
Python\Python310\DLLs

来自 GitHub 讨论的其他上下文

@filmor 提到确保 PATH 和 PYTHONPATH 设置正确。但是,我无法找出 pywin32 在这种情况下正常运行所需的特定路径,因为 venv 中的 numpy 等其他模块可以正常工作。

问题:

是否有特定的目录或 DLL 甚至其他文件必须包含在 PATH 或 PYTHONPATH 中才能使 pywin32 被 pythonnet 识别?

目标是让 TensorRT 运行,它在内部深处有一个 win32api 导入。任何见解或建议将不胜感激。谢谢!

python pywin32 python.net
1个回答
0
投票

将两个dll从

site-packages\pywin32_system32
复制到
C:\Windows\System32

以管理员身份运行

$ python .\.venv\Scripts\pywin32_postinstall.py -install
© www.soinside.com 2019 - 2024. All rights reserved.