Python - 将其他 python 程序作为库导入

Python - importing other python programs as libraries

我正在使用 FreeCAD。 FreeCAD 以 .so 文件的形式提供了许多库。 因此,要使用它们,我只需要修改 .bashrc,以便在 PYTHONPATH 中包含库文件的位置。 然后这就是做 import FreeCAD 的全部问题,这很有效。 现在都是香草。

但是,还有一个我无法导入的库。 当我输入 import Draft 时,我得到了

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'Draft'

我查了一下,library目录下没有Draft.so。 但是,在程序的 GUI 中 - python 控制台,当我输入 import Draft 时它起作用了。

我调查了为什么会这样。我输入了:

import Draft
import inspect
inspect.getfile(Draft)

我得到了:

'/usr/share/freecad-daily/Mod/Draft/Draft.py'

这是另一个目录。 此目录中甚至还有另一个文件夹,其中包含所有 Draft 函数调用,作为单独的 python 文件。 (例如,有一个名为 Draft.scale() 的方法。目录中有一个名为 scale.py 的文件)

有没有办法包含所有这些 python 文件,这样我就可以使用 import Draft,并且可以正常工作?

也许是设置新的 PYTHONPATH 的问题?

只需将 '/usr/share/freecad-daily/Mod/Draft' 添加到您的 PYTHONPATH

一般来说,Mod里面的每个子目录都是一个包根目录。