'pip install -e' 项目名称出错 "yolov3"
'pip install -e' gives error with project name "yolov3"
我今天第一次使用命令参数 -e
使用 pip install -e path/to/project
安装了几个可编辑状态的依赖项。
对于第一个依赖项,项目 sort
,一切正常。
但是对于其他依赖项,项目 yolov3
事情并没有那么好,尽管我使用了完全相同的命令:
安装
(torch) user@user-PC:~/Code/Project$ pip install -e Detection/yolov3/
检查
(torch) user@user-PC:~/Code/Project$ pip show yolov3
Name: yolov3
Version: 1.0
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Location: /home/user/Code/Project/Detection/yolov3
Requires:
Required-by:
使用
from sort import Sort
from yolov3 import get_detections_from_single_frame as get_detections
dummy_frame = None
mot_tracker = Sort()
track_bbs_ids = mot_tracker.update(get_detections(dummy_frame))
但是我得到一个错误
(torch) user@user-PC:~/Code/Project$ python main.py
Traceback (most recent call last):
File "main.py", line 10, in <module>
from yolov3 import get_detections_from_single_frame as get_detections
ModuleNotFoundError: No module named 'yolov3'
我曾尝试将名称更改为 yolo 以消除模块名称中的数字,但没有成功,但我可能无法更改项目名称本身。
这是我在项目 yolov3 中使用的 setup.py(我使用相同的排序,除了名称 属性 原因很明显):
from setuptools import setup, find_packages
setup(name='yolov3', version='1.0', packages=find_packages())
这里是 project structure:
yolov3/
├── __init__.py
├── models/
| ├── __init__.py
| ├── liba1.py
| ├── liba2.py
| ├── liba3.py
├── utils/
| ├── __init__.py
| ├── libb1.py
| ├── libb2.py
| ├── libb3.py
└── weights/
└── libc1.py
有人可以告诉我我错过了什么吗?
PS:
按照 Haller Patrick 的建议,修改项目结构消除了原始错误消息。
yolov3/
├── yolov3/
| ├── __init__.py
| ├── models/
| | ├── __init__.py
| | ├── liba1.py
| | ├── liba2.py
| | ├── liba3.py
| ├── utils/
| | ├── __init__.py
| | ├── libb1.py
| | ├── libb2.py
| | ├── libb3.py
| └── weights/
| └── libc1.py
|
└── setup.py
但是在更深的文件夹级别出现了一条消息:
Traceback (most recent call last):
File "/home/user/Code/Project/main.py", line 10, in <module>
from yolov3.detect import get_detections_from_single_frame as get_detections
File "/home/user/Code/Project/Detection/yolov3/yolov3/detect.py", line 9, in <module>
from models.experimental import attempt_load
ModuleNotFoundError: No module named 'models'
要获得准确的答案,您必须提供包的项目结构 yolov3
。但我想问题是包 yolov3
不包含要构建的模块。
最小的项目结构必须如下所示:
yolov3/
├── yolov3/
│ ├── __init__.py
│ ├── lib1.py
│ ├── ...
│ └── ...
├── setup.py
重要的是 __init__.py
文件,因此 yolov3
可以作为模块导入。这对我有用。
作为参考,这里有一个使用这种结构的 python 包:https://github.com/gruns/icecream
我今天第一次使用命令参数 -e
使用 pip install -e path/to/project
安装了几个可编辑状态的依赖项。
对于第一个依赖项,项目 sort
,一切正常。
但是对于其他依赖项,项目 yolov3
事情并没有那么好,尽管我使用了完全相同的命令:
安装
(torch) user@user-PC:~/Code/Project$ pip install -e Detection/yolov3/
检查
(torch) user@user-PC:~/Code/Project$ pip show yolov3
Name: yolov3
Version: 1.0
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Location: /home/user/Code/Project/Detection/yolov3
Requires:
Required-by:
使用
from sort import Sort
from yolov3 import get_detections_from_single_frame as get_detections
dummy_frame = None
mot_tracker = Sort()
track_bbs_ids = mot_tracker.update(get_detections(dummy_frame))
但是我得到一个错误
(torch) user@user-PC:~/Code/Project$ python main.py
Traceback (most recent call last):
File "main.py", line 10, in <module>
from yolov3 import get_detections_from_single_frame as get_detections
ModuleNotFoundError: No module named 'yolov3'
我曾尝试将名称更改为 yolo 以消除模块名称中的数字,但没有成功,但我可能无法更改项目名称本身。
这是我在项目 yolov3 中使用的 setup.py(我使用相同的排序,除了名称 属性 原因很明显):
from setuptools import setup, find_packages
setup(name='yolov3', version='1.0', packages=find_packages())
这里是 project structure:
yolov3/
├── __init__.py
├── models/
| ├── __init__.py
| ├── liba1.py
| ├── liba2.py
| ├── liba3.py
├── utils/
| ├── __init__.py
| ├── libb1.py
| ├── libb2.py
| ├── libb3.py
└── weights/
└── libc1.py
有人可以告诉我我错过了什么吗?
PS:
按照 Haller Patrick 的建议,修改项目结构消除了原始错误消息。
yolov3/
├── yolov3/
| ├── __init__.py
| ├── models/
| | ├── __init__.py
| | ├── liba1.py
| | ├── liba2.py
| | ├── liba3.py
| ├── utils/
| | ├── __init__.py
| | ├── libb1.py
| | ├── libb2.py
| | ├── libb3.py
| └── weights/
| └── libc1.py
|
└── setup.py
但是在更深的文件夹级别出现了一条消息:
Traceback (most recent call last):
File "/home/user/Code/Project/main.py", line 10, in <module>
from yolov3.detect import get_detections_from_single_frame as get_detections
File "/home/user/Code/Project/Detection/yolov3/yolov3/detect.py", line 9, in <module>
from models.experimental import attempt_load
ModuleNotFoundError: No module named 'models'
要获得准确的答案,您必须提供包的项目结构 yolov3
。但我想问题是包 yolov3
不包含要构建的模块。
最小的项目结构必须如下所示:
yolov3/
├── yolov3/
│ ├── __init__.py
│ ├── lib1.py
│ ├── ...
│ └── ...
├── setup.py
重要的是 __init__.py
文件,因此 yolov3
可以作为模块导入。这对我有用。
作为参考,这里有一个使用这种结构的 python 包:https://github.com/gruns/icecream