【问题标题】:Is there a way to import Python3's multiprocessing module inside a Sublime Text 3 plugin?有没有办法在 Sublime Text 3 插件中导入 Python3 的多处理模块?
【发布时间】:2013-08-27 03:39:12
【问题描述】:

我正在我的 OSX 开发环境中制作 ST3 插件,但根据 unofficial docs:

Sublime Text 附带一个精简的标准库。 Tkinter、multiprocessing 和 sqlite3 模块是缺失的。

即使它没有与 ST3 捆绑,有没有办法我仍然可以导入 multiprocessing (docs)?有没有办法可以将它作为插件目录中的“独立”模块导入?

【问题讨论】:

    标签: python python-3.x multiprocessing sublimetext sublimetext3


    【解决方案1】:

    假设您打算将此程序广泛分发,那么期望用户在标准位置安装 Python 3 以使用您的工作可能是不合理的。但是,根据 Python 的再分发许可证,您可能只需将 multiprocessing 与您的插件捆绑在一起即可。如果您的主要my_awesome_plugin.py 文件位于插件目录的根目录中,请将完整的multiprocessing 目录作为子目录放入,您应该可以使用import multiprocessing as mp。幸运的是,它是纯 Python,因此您不必担心特定于平台的发行版。


    编辑

    好吧,我的错。在对...lib/python3.3/ 层次结构进行了更多探索之后,结果发现一个已编译的_multiprocessing.so 库以补充纯Python 版本。因此,这将比仅仅放入multiprocessing 目录更困难一些。我仍然认为这可能是可行的,因为理论上您可以包含三个不同 ST3 平台的编译库,然后放入一些逻辑来确定用户正在运行的操作系统。但是,我并不了解 Python 内部的最新情况,因为我需要正确回答这个问题,所以我会听从其他人的意见,了解它究竟是如何工作的。

    【讨论】:

    • 我不确定您之前是否使用 ST3 制作过插件,但插件与外部 Python 安装是隔离的,因此用户是否安装了 Python 并不重要。除了与 ST3 捆绑的 Python 之外,您不能从任何 Python 导入标准库。因此,无需启动 VM,因为仅尝试在 any 计算机上导入 multiprocessing 就会出现 module not found 错误。你确定 Python 3 multiprocessing 是纯 Python 吗?我没有找到任何表明它是或不是的东西。
    • 好的,我需要修改答案 - 结果我错过了 ...lib/python3.3/lib-dynload/ 目录,并且 is _multiprocessing.so 文件在那里。大鼠。我想您可以制作特定于平台的插件版本...
    猜你喜欢
    • 1970-01-01
    • 2017-10-20
    • 2019-06-30
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多