ERROR: file:///home/aaeon/mmdeploy/mmdeploy does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found. (base) aaeon@aaeon-desktop:~/mmdeploy/mmdeploy$ source ~/.bashrc apis/ backend/ codebase/ core/ __init__.py lib/ mmcv/ pytorch/ utils/ version.py (base) aaeon@aaeon-desktop:~/mmdeploy/mmdeploy$ source ~/.bashrc Switched to CUDA 11.6 (base) aaeon@aaeon-desktop:~/mmdeploy/mmdeploy$ cd ${MMDEPLOY_DIR} (base) aaeon@aaeon-desktop:~/mmdeploy$ pip install -e . Obtaining file:///home/aaeon/mmdeploy Preparing metadata (setup.py) ... error error: subprocess-exited-with-error × python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [20 lines of output] Traceback (most recent call last): File "<string>", line 2, in <module> exec(compile(''' ~~~~^^^^^^^^^^^^ # This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<32 lines>... exec(compile(setup_py_code, filename, "exec")) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ''' % ('/home/aaeon/mmdeploy/setup.py',), "<pip-setuptools-caller>", "exec")) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<pip-setuptools-caller>", line 35, in <module> File "/home/aaeon/mmdeploy/setup.py", line 178, in <module> version=get_version(), ~~~~~~~~~~~^^ File "/home/aaeon/mmdeploy/setup.py", line 26, in get_version return locals()['__version__'] ~~~~~~~~^^^^^^^^^^^^^^^ KeyError: '__version__' Skip building ext ops due to the absence of torch. [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed × Encountered error while generating package metadata. ╰─> See above for output. note: This is an issue with the package mentioned above, not pip. hint: See above for details.
时间: 2025-07-04 07:06:23 浏览: 16
### 问题分析
在尝试安装 mmdeploy 项目时,用户遇到错误提示:`ERROR: file:///home/aaeon/mmdeploy/mmdeploy does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found. KeyError: '__version__'`。该错误表明当前目录结构不符合标准 Python 项目的格式,缺少必要的构建配置文件(如 `setup.py` 或 `pyproject.toml`),并且尝试读取 `__version__` 属性时失败。
此问题通常发生在以下几种情况:
1. 当前路径不是有效的 Python 包根目录。
2. 源码未正确克隆或目录结构被误操作。
3. 使用了错误的子模块路径而非项目根目录进行安装。
---
### 解决方案
确保使用正确的项目根目录进行安装。mmdeploy 的官方仓库应包含 `setup.py` 文件用于构建 Python 包。如果该文件缺失,说明可能进入了错误的子目录,或者源码未完整下载。请检查当前路径是否为项目主目录,并确认是否存在 `setup.py` 文件。
```bash
ls -la /home/aaeon/mmdeploy/
```
若发现当前目录中没有 `setup.py`,应回退至上层目录或重新克隆项目:
```bash
cd /home/aaeon
rm -rf mmdeploy
git clone https://github.com/open-mmlab/mmdeploy.git
cd mmdeploy
```
完成上述步骤后,再次检查是否包含 `setup.py` 并尝试安装:
```bash
python3 -m pip install -v .
```
如果仍然无法找到 `setup.py`,则可能是 git 克隆过程中未正确获取所有文件,建议检查网络连接并重新执行克隆命令。此外,某些情况下需要启用子模块支持以确保完整获取依赖:
```bash
git submodule update --init --recursive
```
对于版本信息报错 `KeyError: '__version__'`,这通常意味着在 `setup.py` 中尝试读取 `__version__` 变量时失败,可能由于 `__init__.py` 中未定义该变量或导入路径错误。请检查 `mmdeploy/__init__.py` 是否包含类似如下内容:
```python
__version__ = '0.11.0'
```
若不存在,可手动添加该行代码[^4]。
---
### 示例代码:检查 __version__ 定义
可通过以下 Python 脚本验证 `__version__` 是否正确定义:
```python
import importlib.util
import sys
module_name = "mmdeploy"
file_path = "/home/aaeon/mmdeploy/mmdeploy/__init__.py"
spec = importlib.util.spec_from_file_location(module_name, file_path)
module = importlib.util.module_from_spec(spec)
sys.modules[module_name] = module
spec.loader.exec_module(module)
print(f"Module version: {module.__version__}")
```
运行后若输出版本号,则说明 `__version__` 已正确设置。
---
### 相关注意事项
- 若使用虚拟环境,请确保激活正确的环境后再执行安装命令。
- 部分 Linux 发行版默认的 Python 版本可能不兼容 mmdeploy,建议使用 Python 3.7 及以上版本。
- 如果项目依赖项未满足,pip 安装过程可能会中断,需根据提示安装对应库(如 PyTorch、ONNX 等)。
---
阅读全文
相关推荐



















