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里面的每个子目录都是一个包根目录。
我正在使用 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里面的每个子目录都是一个包根目录。