{"id":24160,"library":"opengeode-io","title":"OpenGeode IO","description":"Implementation of input and output formats (e.g., OBJ, DXF, XYZ, Vs, etc.) for OpenGeode. Current version: 7.5.2. Release cadence: monthly.","status":"active","version":"7.5.2","language":"python","source_language":"en","source_url":"https://github.com/Geode-solutions/OpenGeode-IO","tags":["geology","geometry","mesh","file-io","opengeode"],"install":[{"cmd":"pip install opengeode-io","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core library providing OpenGeode data structures and geometry.","package":"opengeode-core","optional":false}],"imports":[{"note":"The library uses underscores in package name but the correct subpackage is 'opengeode.io'","wrong":"import opengeode_io","symbol":"OpenGeodeIO","correct":"from opengeode.io import OpenGeodeIO"},{"note":"OGR module is nested under opengeode.io","wrong":"from opengeode_io import OGRExporter","symbol":"OGRExporter","correct":"from opengeode.io.ogr import OGRExporter"}],"quickstart":{"code":"from opengeode.io import OpenGeodeIO\n\nio = OpenGeodeIO()\n# Read a mesh file (e.g., OBJ)\nmesh = io.read(\"model.obj\")\nprint(mesh)\n\n# Write a mesh to a file\nio.write(mesh, \"output.obj\")\n","lang":"python","description":"Basic usage: create an OpenGeodeIO instance, read a file into a mesh object, and write it back."},"warnings":[{"fix":"Use 'from opengeode.io import X' instead of 'import opengeode_io'.","message":"Import with underscores (import opengeode_io) does not work; must use dotted package path: from opengeode.io import ...","severity":"gotcha","affected_versions":"all"},{"fix":"Upgrade to Python 3.9-3.12.","message":"Version 7.x dropped support for Python 3.8 and earlier. Requires Python >=3.9,<3.13.","severity":"breaking","affected_versions":">=7.0.0"},{"fix":"Explicitly import the reader for your format, e.g., from opengeode.io.obj import OBJReader.","message":"File formats are not auto-detected by extension; you must use the correct reader/writer class (e.g., OBJReader, OBJWriter).","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use 'from opengeode.io import ...' (dotted package).","cause":"Incorrect import path; many attempt to import with underscores.","error":"ModuleNotFoundError: No module named 'opengeode_io'"},{"fix":"Install opengeode-core (pip install opengeode-core) and ensure version compatibility.","cause":"Missing or outdated opengeode-core installation.","error":"ImportError: cannot import name 'OpenGeodeIO' from 'opengeode.io'"},{"fix":"Verify file path and use explicit format reader (e.g., OBJReader).","cause":"File path does not exist or incorrect format reader used.","error":"OSError: [Errno 2] No such file or directory: '...'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}