Skip to content

Commit a3c42c3

Browse files
committed
🧤ModuleNotFoundError error when ultralytics not installed
1 parent d7e2d52 commit a3c42c3

File tree

2 files changed

+23
-25
lines changed

2 files changed

+23
-25
lines changed

roboflow/core/version.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -570,12 +570,16 @@ def callback(content: dict) -> dict:
570570
if format in ["yolov5pytorch", "yolov7pytorch", "yolov8"]:
571571
content["train"] = location + content["train"].lstrip("..")
572572
content["val"] = location + content["val"].lstrip("..")
573-
if not get_wrong_dependencies_versions(
574-
[("ultralytics", ">=", "8.0.30")], pass_uninstalled=True
575-
):
576-
content["train"] = "train/images"
577-
content["val"] = "valid/images"
578-
content["test"] = "test/images"
573+
try:
574+
# get_wrong_dependencies_versions raises exception if ultralytics is not installed at all
575+
if not get_wrong_dependencies_versions(
576+
dependencies_versions=[("ultralytics", ">=", "8.0.30")]
577+
):
578+
content["train"] = "train/images"
579+
content["val"] = "valid/images"
580+
content["test"] = "test/images"
581+
except ModuleNotFoundError:
582+
pass
579583
return content
580584

581585
amend_data_yaml(path=data_path, callback=callback)

roboflow/util/versions.py

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66

77
def get_wrong_dependencies_versions(
8-
dependencies_versions: List[Tuple[str, str, str]], pass_uninstalled: bool = False
8+
dependencies_versions: List[Tuple[str, str, str]]
99
) -> List[Tuple[str, str, str, str]]:
1010
"""
1111
Get a list of mismatching dependencies with current version installed.
@@ -15,7 +15,6 @@ def get_wrong_dependencies_versions(
1515
1616
Args:
1717
dependencies_versions (List[Tuple[str, str]]): List of dependencies we want to check, [("<package_name>", "<version_number_to_check")]
18-
pass_uninstalled (bool): By default get_wrong_dependencies_versions will throw exception if <package_name> is not installed. You can pass_uninstalled packages by setting this parameter to True.
1918
2019
Returns:
2120
List[Tuple[str, str, str]]: List of dependencies with wrong version, [("<package_name>", "<version_number_to_check", "<current_version>")]
@@ -27,23 +26,18 @@ def get_wrong_dependencies_versions(
2726
"<=": lambda x, y: x <= y,
2827
}
2928
for dependency, order, version in dependencies_versions:
30-
try:
31-
module = import_module(dependency)
32-
module_version = module.__version__
33-
if order not in order_funcs:
34-
raise ValueError(
35-
f"order={order} not supported, please use `{', '.join(order_funcs.keys())}`"
36-
)
37-
38-
is_okay = order_funcs[order](Version(module_version), Version(version))
39-
if not is_okay:
40-
wrong_dependencies_versions.append(
41-
(dependency, order, version, module_version)
42-
)
43-
except Exception as e:
44-
if pass_uninstalled:
45-
continue
46-
raise e
29+
module = import_module(dependency)
30+
module_version = module.__version__
31+
if order not in order_funcs:
32+
raise ValueError(
33+
f"order={order} not supported, please use `{', '.join(order_funcs.keys())}`"
34+
)
35+
36+
is_okay = order_funcs[order](Version(module_version), Version(version))
37+
if not is_okay:
38+
wrong_dependencies_versions.append(
39+
(dependency, order, version, module_version)
40+
)
4741
return wrong_dependencies_versions
4842

4943

0 commit comments

Comments
 (0)