Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ImportError: DLL load failed while importing CGAL: The specified module could not be found. #110

Open
ialexpovad opened this issue Oct 5, 2023 · 7 comments

Comments

@ialexpovad
Copy link

Hi. Help me close this issue.
Python 3.9, CGAL 5.5, Windows, x64.

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
[d:\GEANT4\projects\test.ipynb](file:///D:/GEANT4/projects/test.ipynb) Cell 1 line 1
----> [1](vscode-notebook-cell:/d%3A/GEANT4/projects/test.ipynb#W0sZmlsZQ%3D%3D?line=0) import pyg4ometry

File [~\AppData\Roaming\Python\Python39\site-packages\pyg4ometry\__init__.py:9](https://file+.vscode-resource.vscode-cdn.net/d%3A/GEANT4/projects/~/AppData/Roaming/Python/Python39/site-packages/pyg4ometry/__init__.py:9)
      6     version_tuple = (0, 0, "unknown version")
      8 from . import config
----> 9 from . import compare
     10 from . import convert
     11 from . import exceptions

File [~\AppData\Roaming\Python\Python39\site-packages\pyg4ometry\compare\__init__.py:1](https://file+.vscode-resource.vscode-cdn.net/d%3A/GEANT4/projects/~/AppData/Roaming/Python/Python39/site-packages/pyg4ometry/compare/__init__.py:1)
----> 1 from ._Compare import *

File [~\AppData\Roaming\Python\Python39\site-packages\pyg4ometry\compare\_Compare.py:6](https://file+.vscode-resource.vscode-cdn.net/d%3A/GEANT4/projects/~/AppData/Roaming/Python/Python39/site-packages/pyg4ometry/compare/_Compare.py:6)
      3 import enum as _enum
      4 import re as _re
----> 6 from pyg4ometry.gdml.Defines import evaluateToFloat as _evaluateToFloat
      7 from pyg4ometry.geant4 import Material as _Material
      8 from pyg4ometry.geant4 import Element as _Element

File [~\AppData\Roaming\Python\Python39\site-packages\pyg4ometry\gdml\__init__.py:1](https://file+.vscode-resource.vscode-cdn.net/d%3A/GEANT4/projects/~/AppData/Roaming/Python/Python39/site-packages/pyg4ometry/gdml/__init__.py:1)
----> 1 from .Reader import *
      2 from .Writer import *
      3 from .Defines import *

File [~\AppData\Roaming\Python\Python39\site-packages\pyg4ometry\gdml\Reader.py:7](https://file+.vscode-resource.vscode-cdn.net/d%3A/GEANT4/projects/~/AppData/Roaming/Python/Python39/site-packages/pyg4ometry/gdml/Reader.py:7)
      5 from . import Defines as _defines
      6 import logging as _log
----> 7 import pyg4ometry.geant4 as _g4
     10 class Reader:
     11     """
     12     Read a GDML file.
     13 
   (...)
     25     predefined material by name only.
     26     """

File [~\AppData\Roaming\Python\Python39\site-packages\pyg4ometry\geant4\__init__.py:20](https://file+.vscode-resource.vscode-cdn.net/d%3A/GEANT4/projects/~/AppData/Roaming/Python/Python39/site-packages/pyg4ometry/geant4/__init__.py:20)
     16     itsAReplica = replicaCondition1 and replicaCondition2
     17     return itsAReplica
---> 20 from .LogicalVolume import *
     21 from .PhysicalVolume import *
     22 from .AssemblyVolume import *

File [~\AppData\Roaming\Python\Python39\site-packages\pyg4ometry\geant4\LogicalVolume.py:8](https://file+.vscode-resource.vscode-cdn.net/d%3A/GEANT4/projects/~/AppData/Roaming/Python/Python39/site-packages/pyg4ometry/geant4/LogicalVolume.py:8)
      6 import pyg4ometry as _pyg4ometry
      7 from pyg4ometry import config as _config
----> 8 from pyg4ometry.visualisation import Mesh as _Mesh
      9 from pyg4ometry.visualisation import Convert as _Convert
     10 from pyg4ometry.visualisation import OverlapType as _OverlapType

File [~\AppData\Roaming\Python\Python39\site-packages\pyg4ometry\visualisation\__init__.py:1](https://file+.vscode-resource.vscode-cdn.net/d%3A/GEANT4/projects/~/AppData/Roaming/Python/Python39/site-packages/pyg4ometry/visualisation/__init__.py:1)
----> 1 from .Mesh import Mesh
      2 from .Mesh import OverlapType
      3 from .Mesh import _getBoundingBox

File [~\AppData\Roaming\Python\Python39\site-packages\pyg4ometry\visualisation\Mesh.py:9](https://file+.vscode-resource.vscode-cdn.net/d%3A/GEANT4/projects/~/AppData/Roaming/Python/Python39/site-packages/pyg4ometry/visualisation/Mesh.py:9)
      7     from pyg4ometry.pycsg.core import CSG as _CSG
      8 elif _config.meshing == _config.meshingType.cgal_sm:
----> 9     from pyg4ometry.pycgal.core import CSG as _CSG
     12 import logging as _log
     13 import numpy as _np

File [~\AppData\Roaming\Python\Python39\site-packages\pyg4ometry\pycgal\__init__.py:1](https://file+.vscode-resource.vscode-cdn.net/d%3A/GEANT4/projects/~/AppData/Roaming/Python/Python39/site-packages/pyg4ometry/pycgal/__init__.py:1)
----> 1 from . import CGAL
      2 from . import geom
      3 from .Point_2 import Point_2_EPICK as Point_2_EPICK

ImportError: DLL load failed while importing CGAL: The specified module could not be found.
@stewartboogert
Copy link
Member

We do not provide windows wheels, so you must have built this from source. Did this build process (pip install . or pip install --editable . ) give any errors? The build should depend on the following packages

  1. CGAL (Header only)
  2. Boost, mpfr, gmp (library)
  3. open cascade (library)

@ialexpovad
Copy link
Author

ialexpovad commented Oct 7, 2023

We do not provide windows wheels, so you must have built this from source. Did this build process (pip install . or pip install --editable . ) give any errors? The build should depend on the following packages

1. CGAL (Header only)

2. Boost, mpfr, gmp (library)

3. open cascade (library)
PS D:\pyg4ometry> pip install --editable .
Defaulting to user installation because normal site-packages is not writeable
Obtaining file:///D:/pyg4ometry
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Installing backend dependencies ... done
  Preparing editable metadata (pyproject.toml) ... done
Requirement already satisfied: importlib-resources in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (5.12.0)
Requirement already satisfied: antlr4-python3-runtime==4.9.3 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (4.9.3)
Requirement already satisfied: configparser in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (6.0.0)
Requirement already satisfied: matplotlib in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (3.7.1)
Requirement already satisfied: networkx>=3 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (3.1)
Requirement already satisfied: numpy in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (1.24.3)
Requirement already satisfied: pandas in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (2.0.1)
Requirement already satisfied: scipy in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (1.10.1)
Requirement already satisfied: sympy>=1.7 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (1.12)
Requirement already satisfied: testtools in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (2.6.0)
Requirement already satisfied: vtk in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (9.2.6)
Requirement already satisfied: pygltflib in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pyg4ometry==1.1.2.dev28+g2e4a4069) (1.16.0)
Requirement already satisfied: mpmath>=0.19 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from sympy>=1.7->pyg4ometry==1.1.2.dev28+g2e4a4069) (1.3.0)
Requirement already satisfied: zipp>=3.1.0 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from importlib-resources->pyg4ometry==1.1.2.dev28+g2e4a4069) (3.15.0)
Requirement already satisfied: contourpy>=1.0.1 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from matplotlib->pyg4ometry==1.1.2.dev28+g2e4a4069) (1.0.7)
Requirement already satisfied: cycler>=0.10 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from matplotlib->pyg4ometry==1.1.2.dev28+g2e4a4069) (0.11.0)
Requirement already satisfied: fonttools>=4.22.0 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from matplotlib->pyg4ometry==1.1.2.dev28+g2e4a4069) (4.39.4)
Requirement already satisfied: kiwisolver>=1.0.1 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from matplotlib->pyg4ometry==1.1.2.dev28+g2e4a4069) (1.4.4)
Requirement already satisfied: packaging>=20.0 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from matplotlib->pyg4ometry==1.1.2.dev28+g2e4a4069) (23.1)
Requirement already satisfied: pillow>=6.2.0 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from matplotlib->pyg4ometry==1.1.2.dev28+g2e4a4069) (9.5.0)
Requirement already satisfied: pyparsing>=2.3.1 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from matplotlib->pyg4ometry==1.1.2.dev28+g2e4a4069) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from matplotlib->pyg4ometry==1.1.2.dev28+g2e4a4069) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pandas->pyg4ometry==1.1.2.dev28+g2e4a4069) (2023.3)
Requirement already satisfied: tzdata>=2022.1 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pandas->pyg4ometry==1.1.2.dev28+g2e4a4069) (2023.3)
Requirement already satisfied: dataclasses-json>=0.0.25 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pygltflib->pyg4ometry==1.1.2.dev28+g2e4a4069) (0.6.1)
Requirement already satisfied: deprecated in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from pygltflib->pyg4ometry==1.1.2.dev28+g2e4a4069) (1.2.14)
Requirement already satisfied: pbr>=0.11 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from testtools->pyg4ometry==1.1.2.dev28+g2e4a4069) (5.11.1)
Requirement already satisfied: fixtures>=2.0 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from testtools->pyg4ometry==1.1.2.dev28+g2e4a4069) (4.1.0)
Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from dataclasses-json>=0.0.25->pygltflib->pyg4ometry==1.1.2.dev28+g2e4a4069) (3.20.1)
Requirement already satisfied: typing-inspect<1,>=0.4.0 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from dataclasses-json>=0.0.25->pygltflib->pyg4ometry==1.1.2.dev28+g2e4a4069) (0.9.0)
Requirement already satisfied: six>=1.5 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from python-dateutil>=2.7->matplotlib->pyg4ometry==1.1.2.dev28+g2e4a4069) (1.16.0)
Requirement already satisfied: wrapt<2,>=1.10 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from deprecated->pygltflib->pyg4ometry==1.1.2.dev28+g2e4a4069) (1.15.0)
Requirement already satisfied: mypy-extensions>=0.3.0 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from typing-inspect<1,>=0.4.0->dataclasses-json>=0.0.25->pygltflib->pyg4ometry==1.1.2.dev28+g2e4a4069) (1.0.0)
Requirement already satisfied: typing-extensions>=3.7.4 in c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages (from typing-inspect<1,>=0.4.0->dataclasses-json>=0.0.25->pygltflib->pyg4ometry==1.1.2.dev28+g2e4a4069) (4.5.0)
Building wheels for collected packages: pyg4ometry
  Building editable for pyg4ometry (pyproject.toml) ... done
  Created wheel for pyg4ometry: filename=pyg4ometry-1.1.2.dev28+g2e4a4069-cp39-cp39-win_amd64.whl size=6414314 sha256=74b6c1afd51829e2d01affc01f018ba55979f6850f2c83c86069d815ea258991
  Stored in directory: C:\Users\ATOMTEX\AppData\Local\Temp\pip-ephem-wheel-cache-5kxgzv9e\wheels\0f\ca\e1\e753ede04017e7a0f3a31571c073628f644fe8fffcfe66406d
Successfully built pyg4ometry
Installing collected packages: pyg4ometry
  WARNING: The script pyg4ometry.exe is installed in 'C:\Users\USERNAME\AppData\Roaming\Python\Python39\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pyg4ometry-1.1.2.dev28+g2e4a4069

Still the same problem.

@stewartboogert
Copy link
Member

We do not support windows, as I don’t have a test platform. Pyg4ometry requires compilation of two large extensions, for OpenCascade and CGAL. It does not appear to be compiling in your output.

I am willing to look through this problem with you, but this will have to be on your system.

Let me know, if you would like to do this.

@stewartboogert
Copy link
Member

@ialexpovod are you still interested?

@ialexpovad
Copy link
Author

@ialexpovod are you still interested?

Yes, it is. How can we do this?

@stewartboogert
Copy link
Member

@ialexpovod Drop me a line (Stewart.boogert@cockcroft.ac.uk) and we can find a time to meet and see if we can get things working under windows. I recently tried on arm64 windows and failed immediately as I could not get all dependencies for this architecture.

@stewartboogert
Copy link
Member

stewartboogert commented Oct 31, 2023

Ok, I managed to get old of a windows machine and documenting progress here on the windows development

Building against Windows 10, Conda (pybind11, occt, cmake) appears to work up to the OCCT version 10.4 vs 10.5 which pyg4ometry requires. This is performing a traditional out of directory cmake build i.e

git clone pyg4ometry
mkdir pyg4ometry-build
cd pyg4ometry-build
cmake ../pyg4ometry

opposed to using pip and setup tools scikit-build so

pip install . 

The problem with the scikit build is locating and running nmake which should be relatively simple to resolve

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants