什么地方不起作用?导入 mitmproxy 是否失败?如果是,请尝试重新启动 JMP,看看它现在是否对 JMP 可见。否则举个例子如何?您尝试了什么,为什么它没有达到您的预期?
请注意:mitmproxy 软件包是一个用于拦截网络流量的中间人 HTTPS/TLS 网络代理。我假设这里的用例是单独启动 mitmproxy 并使用 JMP 和 mitmproxy 的 Python-API 从 JMP 控制代理。
是的,我想用这个mitmproxy来代替Selenium进行数据包捕获。
可能是我没有设置电脑代理服务器原因。而且python是GPT-4o编写的。
我先检查一下。
谢谢专家!
但是对于在非 JMP 环境中使用 python 的其他人来说,以下 PY 代码可以正常工作。
但是我从未在 JMP 环境中成功运行 python。尝试安装这些库的不同版本也失败了。
错误
C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pywinauto\__init__.py:71: UserWarning: Apply externally defined coinit_flags: 2
warnings.warn("Apply externally defined coinit_flags: {0}"
Traceback (most recent call last):
File "<STRING>", line 1, in <MODULE>
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pywinauto\__init__.py", line 89, in <MODULE>
from . import findwindows
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pywinauto\findwindows.py", line 42, in <MODULE>
from . import controls
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pywinauto\controls\__init__.py", line 36, in <MODULE>
from . import uiawrapper # register "uia" back-end (at the end of uiawrapper module)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pywinauto\controls\uiawrapper.py", line 47, in <MODULE>
from ..uia_defines import IUIA
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pywinauto\uia_defines.py", line 181, in <MODULE>
pattern_ids = _build_pattern_ids_dic()
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pywinauto\uia_defines.py", line 169, in _build_pattern_ids_dic
if hasattr(IUIA().ui_automation_client, cls_name):
^^^^^^
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pywinauto\uia_defines.py", line 50, in __call__
cls._instances[cls] = super(_Singleton, cls).__call__(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pywinauto\uia_defines.py", line 60, in __init__
self.UIA_dll = comtypes.client.GetModule('UIAutomationCore.dll')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\comtypes\client\_generate.py", line 153, in GetModule
return _create_friendly_module(tlib, modulename)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\comtypes\client\_generate.py", line 218, in _create_friendly_module
_invalidate_import_caches()
File "C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\comtypes\client\_generate.py", line 189, in _invalidate_import_caches
importlib.invalidate_caches()
File "importlib\__init__.py", line 70, in invalidate_caches
finder.invalidate_caches()
File "<FROZEN importlib._bootstrap_external="">", line 1409, in invalidate_caches
TypeError: MetadataPathFinder.invalidate_caches() missing 1 required positional argument: 'cls'</FROZEN></MODULE></MODULE></MODULE></MODULE></MODULE></MODULE></STRING>磷
from pywinauto.application import Application
from pywinauto import timings
import pandas as pd
import time
import datetime
import os
import psutil
尝试安装这些库的不同版本也失败了。
正如在其他一些 Python 讨论帖子中多次提到的那样,JMP 18.0 在安装某些软件包时存在问题。如果由于无法找到 _socket 错误而导致安装失败,则这是一个已知问题。该问题已在 18.1 中得到解决,但您需要卸载 JMP 18.0 并全新安装 18.1。更新/修复不会移动必要的文件。
18.0 中的解决方法是转到 JMP 安装目录创建一个 DLLs\ 目录,将所有 .pyd 移到 DLLs 目录和一些 dll 中。这些是:libcrypto、libssl、libffi 和 sqlite3。它们的名称中有版本号。将这些文件也移到 DLLs 目录中。这应该可以修复由于找不到 _socket 错误而导致的安装失败。pywinauto 应该在修复后安装,或者使用 18.1 重新安装
我已经在我的计算机上尝试过这个,并且成功安装了所有软件包,但尝试从 JMP 运行时也收到了错误消息。
TypeError:MetadataPathFinder.invalidate_caches()缺少 1 个必需的位置参数:“cls”
搜索该字符串表明这是包内的编码错误。我看到了这种行为,我可以从独立的 Python 导入,错误来自 JMP。但在这种情况下,由于环境是在嵌入式 Python 中运行,因此包似乎采用了不同的代码路径。您可以向项目提交错误/问题。GitHub- pywinauto/pywinauto:使用 Python 实现 Windows GUI 自动化(基于文本属性)但是,pywinauto 似乎是一个被放弃的项目。2 年多来没有提交。查看问题跟踪器,它在 Win 11 上运行时似乎也存在问题。我的一位同事正在开发一个项目,该项目利用 Window 的 UI 自动化为我们自己的测试套件添加功能。但是,即使在 C++ 中,从您正在自动化的应用程序内部调用 UI 自动化也存在重大问题。这也可能会产生影响。pywinauto 的作者不太可能测试或尝试在嵌入式 Python 中运行。
抱歉,看起来从 JMP 或任何嵌入式 Python 实例内部运行 pywinauto 是死路一条。
如果我想单独安装python,如何让它的库使用原始的JMP环境python库?
谢谢专家!
C:\Users\Administrator\AppData\Roaming\JMP\JMP\Python\Python311\Scripts
C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\venv\scripts