Aller au contenu

pythonOCC

Installation sur Ubuntu 20.04

Compilation et installation de open cascade

Note

Je me suis appuyé sur cet excellent tuto : How to install opencascade 7.4 on Ubuntu 18.04 LTS – Real Glitch

Installation des dépendances

1
2
3
4
5
6
7
8
$ sudo apt-get install cmake
$ sudo apt-get install software-properties-common
$ sudo apt-get install libtool autoconf automake gfortran gdebi
$ sudo apt-get install gcc-multilib libxi-dev libxmu-dev libxmu-headers
$ sudo apt-get install libx11-dev mesa-common-dev libglu1-mesa-dev
$ sudo apt-get install libfontconfig1-dev
$ sudo apt-get install libfreetype6 libfreetype6-dev
$ sudo apt-get install tcl8.6 tcl8.6-dev tk8.6 tk8.6-dev

Compilation

Note

Cette étape est assez longue. Il m'a fallu environ deux heures pour compiler les sources.

Télécharger les sources de opencascade sur le site officiel.

1
2
3
4
5
$ tar xf opencascade-7.4.0.tar.gz
$ mkdir tmp
$ cd tmp/
$ cmake ../opencascade-7.4.0
$ make

Installation

1
$ sudo make install

Compilation et installation de pythonOCC

Installation des dépendances

1
$ sudo apt-get install swig

Compilation

Note

J'utilise un environnement virtuel Python.

Note

Cette étape est assez longue. Il m'a fallu environ deux heures pour compiler les sources.

1
2
3
4
5
6
7
8
9
$ git clone git://github.com/tpaviot/pythonocc-core.git
$ cd pythonocc-core
$ python3 -m virtualenv -p python3 venv
$ source venv/bin/activate
$ pip install PyQt5
$ mkdir cmake-build
$ cd cmake-build
$ cmake ..
$ make

Attention

D'après la documentation, il est possible de gagner en temps de compilation avec la commande $ make -j$ncpus. Or, ces options font planter ma session. J'ai donc compilé avec les options par défaut avec la commande $ make.

Installation

1
$ make install

Dans le fichier /venv/lib/python3.8/site-packages/OCC/Display/backend.py, remplacer log.set_level(logging.DEBUG) par log.setLevel(logging.DEBUG).

Test

1
$ touch hello-dumb-box.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/bin/env python3
# -*- coding: utf_8 -*-

from OCC.Display.SimpleGui import init_display
from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox

display, start_display, add_menu, add_function_to_menu = init_display()
my_box = BRepPrimAPI_MakeBox(10.0, 20.0, 30.0).Shape()

display.DisplayShape(my_box, update=True)
start_display()
1
$ python hello-dumb-box.py

Ressources

Annexes

Version des paquets installés

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ dpkg -l

||/ Nom                                        Version                             Architecture Description
+++-==========================================-===================================-============-=======================================================================================>
ii  cmake                                      3.16.3-1ubuntu1                     amd64        cross-platform, open-source make system
ii  software-properties-common                 0.98.9                              all          manage the repositories that you install software from (common)
ii  libtool                                    2.4.6-14                            all          Generic library support script
ii  autoconf                                   2.69-11.1                           all          automatic configure script builder
ii  automake                                   1:1.16.1-4ubuntu6                   all          Tool for generating GNU Standards-compliant Makefiles
ii  gfortran                                   4:9.3.0-1ubuntu2                    amd64        GNU Fortran 95 compiler
ii  gdebi                                      0.9.5.7+nmu3                        all          simple tool to view and install deb files - GNOME GUI
ii  gcc-multilib                               4:9.3.0-1ubuntu2                    amd64        GNU C compiler (multilib files)
ii  libxi-dev:amd64                            2:1.7.10-0ubuntu1                   amd64        X11 Input extension library (development headers)
ii  libxmu-dev:amd64                           2:1.1.3-0ubuntu1                    amd64        X11 miscellaneous utility library (development headers)
ii  libxmu-headers                             2:1.1.3-0ubuntu1                    all          X11 miscellaneous utility library headers
ii  libx11-dev:amd64                           2:1.6.9-2ubuntu1                    amd64        X11 client-side library (development headers)
ii  mesa-common-dev:amd64                      20.0.4-2ubuntu1                     amd64        Developer documentation for Mesa
ii  libfontconfig1-dev:amd64                   2.13.1-2ubuntu3                     amd64        generic font configuration library - development
ii  libfreetype6:amd64                         2.10.1-2                            amd64        FreeType 2 font engine, shared library files
ii  libfreetype6-dev:amd64                     2.10.1-2                            amd64        FreeType 2 font engine, development files (transitional package)
ii  tcl8.6                                     8.6.10+dfsg-1                       amd64        Tcl (the Tool Command Language) v8.6 - shell
ii  tcl8.6-dev:amd64                           8.6.10+dfsg-1                       amd64        Tcl (the Tool Command Language) v8.6 - development files
ii  tk8.6                                      8.6.10-1                            amd64        Tk toolkit for Tcl and X11 v8.6 - windowing shell
ii  tk8.6-dev:amd64                            8.6.10-1                            amd64        Tk toolkit for Tcl and X11 v8.6 - development files
ii  swig4.0                                    4.0.1-5build1                       amd64        Generate scripting interfaces to C/C++ code

Dernière mise à jour: 3 septembre 2020