My code is below, it doesn't stop after it has ran. import osmium import geopandas as gpd from shapely import LineString from shapely.geometry import Point project_dir = r'C:\Users\Administrator\Desktop\QGIS\projectTest\extractOSMFileByOsmium' osm_file_name = r'mapExtentsCrossOSM.osm' osm_file = project_dir + r'/' + osm_file_name output_points_file_shp_name = r'extractOSMFile_points.shp' output_points_file_shp = project_dir + r'/' + output_points_file_shp_name output_lines_file_shp_name = r'extractOSMFile_lines.shp' output_lines_file_shp = project_dir + r'/' + output_lines_file_shp_name class osmExtractor(osmium.SimpleHandler): def __init__(self): super().__init__() self.points = [] self.lines = [] self.multipolygons = [] def node(self, n): self.points.append({ "id": n.id, "geometry": Point(n.lon, n.lat), "tags": dict(n.tags) }) def way(self, w): if len(w.nodes) > 1: coords = [(n.lon, n.lat) for n in w.nodes] self.lines.append({ "id": w.id, "geometry": LineString(coords), "tags": dict(w.tags) }) try: handler = osmExtractor() handler.apply_file(osm_file, locations=True) except Exception as e: print(f"error:{e}") save_file = gpd.GeoDataFrame(handler.points, geometry="geometry", crs="EPSG:4326") save_file.to_file(output_points_file_shp) save_file = gpd.GeoDataFrame(handler.lines, geometry="geometry", crs="EPSG:4326") save_file.to_file(output_lines_file_shp) Below shows how I installed osmium pip install osmium fiona shapely Looking in indexes: https://mirrors.aliyun.com/pypi/simple/ Collecting osmium Downloading https://mirrors.aliyun.com/pypi/packages/c6/60/78ad4ee586423bfd841f25d5b02fb2a35fde15fafeda9145bd1997398b2a/osmium-4.0.2-cp39-cp39-win_amd64.whl (1.5 MB) ---------------------------------------- 1.5/1.5 MB 8.7 MB/s eta 0:00:00 Collecting fiona Downloading https://mirrors.aliyun.com/pypi/packages/a9/21/5d355e0960a6b0443c9147c4ec81dca65ff3386117d28a5a5a497a6e5dc3/fiona-1.10.1-cp39-cp39-win_amd64.whl (24.5 MB) ---------------------------------------- 24.5/24.5 MB 8.5 MB/s eta 0:00:00 Requirement already satisfied: shapely in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (2.0.7) Requirement already satisfied: requests in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from osmium) (2.32.3) Requirement already satisfied: attrs>=19.2.0 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (25.3.0) Requirement already satisfied: certifi in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (2025.6.15) Requirement already satisfied: click~=8.0 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (8.1.8) Requirement already satisfied: click-plugins>=1.0 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (1.1.1) Requirement already satisfied: cligj>=0.5 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (0.7.2) Requirement already satisfied: importlib-metadata in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (8.6.1) Requirement already satisfied: colorama in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from click~=8.0->fiona) (0.4.6) Requirement already satisfied: numpy<3,>=1.14 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from shapely) (2.0.2) Requirement already satisfied: zipp>=3.20 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from importlib-metadata->fiona) (3.21.0) Requirement already satisfied: charset_normalizer<4,>=2 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from requests->osmium) (3.4.2) Requirement already satisfied: idna<4,>=2.5 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from requests->osmium) (3.10) Requirement already satisfied: urllib3<3,>=1.21.1 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from requests->osmium) (2.4.0) Installing collected packages: osmium, fiona Successfully installed fiona-1.10.1 osmium-4.0.2 Continue reading...