python-3.x - Python - 将其他 Python 程序作为库导入
问题描述
我正在使用 FreeCAD。FreeCAD 以 .so 文件的形式提供了许多库。因此,要使用它们,我只需要修改.bashrc
,以便包含在PYTHONPATH
库文件的位置。然后这一切都是做的事情import FreeCAD
,这很有效。现在这一切都是香草。
但是,还有另一个我无法导入的库。当我输入导入草稿时,我明白了
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'Draft'
我查了一下,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 中的每个子目录都是一个包根。
推荐阅读
- javascript - 如何改变
- 至然后回到
- 具有新价值?
- javascript - 如何使 DataTables 根据需要从 Django 加载 AJAX 数据
- ruby-on-rails - Ruby 中的内部插件系统和模块(Rails 用作框架)
- google-cloud-platform - 根据 cidr 范围获取实例列表
- assembly - 为什么我输入查找值后我的案例表选择没有指向正确的地址?
- caching - Varnish:具有多个 IP 的后端(或使用其他东西)
- azure - 无法使用 Ansible 获取 Azure VM 私有 IP
- c# - 通过可枚举列表生成动态列 - Kendo Grid
- python-3.x - 如何使用 Selenium 和 Python 参考 HTML 中的文本定位元素
- c# - 如何从 Postman 将 XML 传递给 ASP.Net 核心中的 Web API