D:\code\frida-agent-example>python -m pip install --upgrade pip Collecting pip Using cached https://files.pythonhosted.org/packages/c9/bc/b7db44f5f39f9d0494071bddae6880eb645970366d0a200022a1a93d57f5/pip-25.0.1-py3-none-any.whl Installing collected packages: pip Found existing installation: pip 19.2.3 Uninstalling pip-19.2.3: Successfully uninstalled pip-19.2.3 Successfully installed pip-25.0.1 D:\code\frida-agent-example>pip install frida==14.2.8 Collecting frida==14.2.8 WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', OSError(0, 'Error'))': /packages/7f/70/6bb3c6cd79ba0cd9de7e7460aa9bc0f5a44ee59bbaaaa72eed2901915544/frida-14.2.8.tar.gz Downloading frida-14.2.8.tar.gz (7.5 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Building wheels for collected packages: frida Building wheel for frida (pyproject.toml) ... error error: subprocess-exited-with-error × Building wheel for frida (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [81 lines of output] running bdist_wheel running build running build_py creating build\lib.win-amd64-cpython-38\frida copying frida\core.py -> build\lib.win-amd64-cpython-38\frida copying frida\__init__.py -> build\lib.win-amd64-cpython-38\frida running build_ext looking for prebuilt extension in home directory, i.e. C:\Users\testuser/frida-14.2.8-py3.8-win-amd64.egg prebuilt extension not found in home directory, will try downloading it querying pypi for available prebuilds Traceback (most recent call last): File "<string>", line 98, in build_extension FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\testuser/frida-14.2.8-py3.8-win-amd64.egg' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:\users\testuser\.pyenv\pyenv-win\versions\3.8.0\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 389, in <module> main() File "c:\users\testuser\.pyenv\pyenv-win\versions\3.8.0\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 373, in main json_out["return_val"] = hook(**hook_input["kwargs"]) File "c:\users\testuser\.pyenv\pyenv-win\versions\3.8.0\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 280, in build_wheel return _build_backend().build_wheel( File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\build_meta.py", line 437, in build_wheel return _build(['bdist_wheel', '--dist-info-dir', str(metadata_directory)]) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\build_meta.py", line 425, in _build return self._build_with_temp_dir( File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\build_meta.py", line 406, in _build_with_temp_dir self.run_setup() File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\build_meta.py", line 521, in run_setup super().run_setup(setup_script=setup_script) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\build_meta.py", line 319, in run_setup exec(code, locals()) File "<string>", line 152, in <module> File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\__init__.py", line 117, in setup return distutils.core.setup(**attrs) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 183, in setup return run_commands(dist) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 199, in run_commands dist.run_commands() File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 954, in run_commands self.run_command(cmd) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\dist.py", line 999, in run_command super().run_command(command) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 973, in run_command cmd_obj.run() File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\command\bdist_wheel.py", line 400, in run self.run_command("build") File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 316, in run_command self.distribution.run_command(command) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\dist.py", line 999, in run_command super().run_command(command) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 973, in run_command cmd_obj.run() File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\command\build.py", line 135, in run self.run_command(cmd_name) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 316, in run_command self.distribution.run_command(command) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\dist.py", line 999, in run_command super().run_command(command) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 973, in run_command cmd_obj.run() File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\command\build_ext.py", line 98, in run _build_ext.run(self) File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\command\build_ext.py", line 359, in run self.build_extensions() File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\command\build_ext.py", line 476, in build_extensions self._build_extensions_serial() File "C:\Users\testuser\AppData\Local\Temp\pip-build-env-zgbitwfl\overlay\Lib\site-packages\setuptools\_distutils\command\build_ext.py", line 502, in _build_extensions_serial self.build_extension(ext) File "<string>", line 105, in build_extension File "c:\users\testuser\.pyenv\pyenv-win\versions\3.8.0\lib\xmlrpc\client.py", line 1109, in __call__ return self.__send(self.__name, args) File "c:\users\testuser\.pyenv\pyenv-win\versions\3.8.0\lib\xmlrpc\client.py", line 1450, in __request response = self.__transport.request( File "<string>", line 57, in request File "c:\users\testuser\.pyenv\pyenv-win\versions\3.8.0\lib\xmlrpc\client.py", line 1341, in parse_response return u.close() File "c:\users\testuser\.pyenv\pyenv-win\versions\3.8.0\lib\xmlrpc\client.py", line 655, in close raise Fault(**self._stack[0]) xmlrpc.client.Fault: <Fault -32500: 'RuntimeError: PyPI no longer supports the XMLRPC package_releases method. Use JSON or Simple API instead. See https://warehouse.pypa.io/api-reference/xml-rpc.html#deprecated-methods for more information.'> [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for frida Failed to build frida ERROR: Failed to build installable wheels for some pyproject.toml based projects (frida) D:\code\frida-agent-example>
时间: 2025-07-22 20:23:48 浏览: 13
<think>我们面对的问题是:在Windows上使用pip安装frida==14.2.8时,出现了XML-RPC相关的错误。错误信息明确指出PyPI已经不再支持XMLRPC的`package_releases`方法,并建议使用JSON或Simple API。同时,我们还注意到用户使用的pip版本是19.2.3,这是一个较旧的版本。
根据引用[1]和[2],这个问题是由于PyPI废弃了XML-RPC API导致的。引用[3]也提到PyPI的XML-RPC API因为高负载已被临时禁用,并将在未来被弃用。
解决方案的核心是避免使用旧的XML-RPC API。我们可以通过以下步骤解决:
1. **升级pip**:因为旧版pip可能还在使用XML-RPC与PyPI交互,升级pip到最新版本可以确保使用新的API。
2. **使用预编译的wheel文件**:如果升级pip后仍然有问题,我们可以手动下载对应平台的wheel文件进行安装。
具体步骤:
**步骤1:升级pip**
在命令提示符中运行:
```cmd
python -m pip install --upgrade pip
```
**步骤2:再次尝试安装frida**
```cmd
pip install frida==14.2.8
```
**如果步骤2仍然失败**(可能因为网络问题或PyPI源的问题),我们可以尝试使用国内镜像源,或者手动下载wheel文件。
**步骤3:手动安装(备选方案)**
1. 访问Frida的GitHub发布页面:https://github.com/frida/frida/releases/tag/14.2.8
2. 找到与你的Python版本和系统架构对应的wheel文件。对于Windows 64位和Python 3.8,应该下载`frida-14.2.8-py3-none-win_amd64.whl`。
3. 下载后,在命令行中进入该文件所在目录,运行:
```cmd
pip install frida-14.2.8-py3-none-win_amd64.whl
```
另外,注意错误日志中显示:
```
looking for prebuilt extension in home directory, i.e. C:\Users\testuser/frida-14.2.8-py3.8-win-amd64.egg
prebuilt extension not found in home directory, will try downloading it
```
这表示安装程序试图在用户主目录下查找预编译的egg文件,但没有找到。所以手动下载wheel文件并安装是一个有效的替代方法。
**验证安装**:
安装完成后,可以运行以下命令验证:
```cmd
python -c "import frida; print(frida.__version__)"
```
应该输出:`14.2.8`
注意:如果使用手动下载的wheel文件,请确保Python版本和系统架构(32位或64位)与wheel文件匹配。
此外,引用[3]中提到,PyPI的XML-RPC API已经被临时禁用,所以升级pip是根本的解决方法,因为新版的pip会使用新的API。
最后,用户的环境变量中使用了pyenv-win来管理Python版本,请确保在升级pip和安装frida时使用的是同一个Python环境(即3.8.0)。
总结步骤:
1. 升级pip
2. 尝试使用pip安装
3. 如果失败,手动下载wheel文件并安装
按照以上步骤,应该可以解决安装问题。
相关问题:
§§相关问题§§
1. 如何检查 PyPI API 的当前服务状态?
2. 除了 pip,还有哪些 Python 包管理工具支持新版 PyPI API?
3. 在 Linux 系统中遇到相同错误该如何解决?
4. 如何为特定项目创建隔离的 Python 环境以避免依赖冲突?</think>### 解决 Frida 14.2.8 安装错误的完整方案
您遇到的错误是由于 PyPI 已弃用 XML-RPC API 导致的[^1][^2][^3]。以下是分步解决方案:
#### 解决方案 1:升级 pip 并重试(推荐)
```powershell
# 升级 pip 到最新版本(必须)
python -m pip install --upgrade pip
# 再次尝试安装
pip install frida==14.2.8
```
> 升级 pip 可确保使用 PyPI 的新 JSON API 替代已弃用的 XML-RPC[^1]
#### 解决方案 2:手动安装预编译包
1. **下载对应版本的 wheel 文件**:
- 访问 Frida 发布页:https://github.com/frida/frida/releases/tag/14.2.8
- 根据您的系统选择:
- Windows 64位:`frida-14.2.8-py3-none-win_amd64.whl`
- Windows 32位:`frida-14.2.8-py3-none-win32.whl`
2. **本地安装**:
```powershell
pip install path\to\downloaded\frida-14.2.8-py3-none-win_amd64.whl
```
#### 解决方案 3:使用国内镜像源
```powershell
pip install frida==14.2.8 -i https://pypi.tuna.tsinghua.edu.cn/simple
```
#### 验证安装
```powershell
python -c "import frida; print(frida.__version__)"
# 正确输出:14.2.8
```
### 根本原因分析
1. **PyPI API 变更**:
- XML-RPC API 已于 2023 年弃用[^1]
- 旧版 pip (<20.3) 仍尝试使用废弃接口
- 错误信息明确提示需改用 JSON API[^2]
2. **Frida 安装机制**:
- Frida 安装时会查询预编译二进制
- 查询过程依赖 PyPI API
- API 弃用导致查询失败[^3]
> **提示**:可通过 https://status.python.org/ 查看 PyPI 服务状态[^3]
阅读全文
相关推荐


















