CLI(python)から「FreeCADをインポートする」方法

CLI(python)から「FreeCADをインポートする」方法

import FreeCADPythonコンソールでこれを行うにはどうすればよいですか?

特定のFreeCADファイルを操作できるスクリプトを作成しようとしていますが、FreeCADがインストールされているシステムのPythonコンソールにFreeCADをインポートすることもできません。

user@disp7637:~$ sudo dpkg -l | grep -i freecad
ii  freecad                                       0.19.1+dfsg1-2+deb11u1             all          Extensible Open Source CAx program
ii  freecad-common                                0.19.1+dfsg1-2+deb11u1             all          Extensible Open Source CAx program - common files
ii  freecad-python3                               0.19.1+dfsg1-2+deb11u1             amd64        Extensible Open Source CAx program - Python 3 binaries
ii  libfreecad-python3-0.19                       0.19.1+dfsg1-2+deb11u1             amd64        Extensible Open Source CAx program - Python 3 library files
user@disp7637:~$ 

user@disp7637:~$ python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import FreeCAD
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'FreeCAD'
>>> import freecad
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'freecad'
>>> 

私はDebian 11を使用しています。

user@disp7637:~$ cat /etc/issue
Debian GNU/Linux 11 \n \l

user@disp7637:~$ 

import FreeCADPythonコンソールでこれを行うにはどうすればよいですか?

答え1

あ、おっしゃった文がちょっと誇張されたようですね。

FreeCADをPythonモジュールにインポートすることもできますが、これはより複雑です。

FreeCAD自体含めるPythonは、内部状態にアクセスできるFreeCADプロセス内で実行されるスクリプトを提供します。

したがって、輸入注文のようなものが重要になり始めます。とにかく始めましょう。

これらのモジュールはFreeCADと相互に関連付けられているため、Python標準モジュールパスにはインストールされず、代わりに/usr/lib/freecad-python3/libDebianで見つけることができます。だから、

from sys import path as syspath
syspath.append("/usr/lib/freecad-python3/lib")
syspath.append("/usr/share/freecad/Mod/")

import FreeCAD
import Draft

/usr/lib64/freecad/lib64ただし、他のディストリビューションはこれらのサブフォルダーのアーキテクチャ名を使用するのがより堅牢であるため、Fedoraおよび関連ディストリビューションでは少なくともx86_64のパスがあります。

関連情報