微管理器的设备控制层MMCore的Python绑定

pymmcore的Python项目详细描述


pymmcore:MMCore的Python绑定

Status:尚不适用于pip install,但可以构建并正常工作。在

pymmcore包为Micro Manager的MMCore提供了python3.x绑定 (低层设备控制/采集接口)。在

注意:pymmcore非常类似于遗留的MMCorePy模块(仅限于python2.x), 分布式应用程序管理器。但是,的Python包 pymmcore被命名为pymmcore,而不是MMCorePy。这在一定程度上是为了避免 在pymmcore(通常通过 pip)和MMCorePy(与Micro Manager应用程序一起安装或由 user)两者都存在。在

因为pymmcore是与Micro Manager分开发布的,所以它需要 “指向”现有的Micro Manager安装以访问设备适配器。 (参见下面的示例。)

安装

一旦pymmcore被释放,以下命令起作用:

python -m pip install --user pymmcore

您还需要安装Micro Manager应用程序。在

简单的例子

^{pr2}$

我们目前没有针对CMMCore的特定于Python的文档。C++ documentation 是最好的资源。在

匹配Micro Manager和pymmcore版本

pymmcore的版本号独立于Micro Manager版本 数字。在

为了使用给定的Micro Manager安装,设备接口 版本必须在pymmcore和Micro Manager设备适配器之间匹配 (Windows上的mmgr_dal_*.dll)。在

给定Micro Manager安装的设备接口版本可以是 在帮助中查看>;关于Micro Manager。在

给定pymmcore版本的设备接口版本可以视为 以下内容:

importpymmcorepymmcore.CMMCore().getAPIVersionInfo()

请注意,getAPIVersionInfo()不应与getVersionInfo()混淆, 返回MMCore的版本号。(MMCore版本是前3个版本 pymmcore版本的一部分。)

  • 例如,pymmcore10.0.0.0基于MMCore10.0.0。那个版本的 MMCore具有设备接口版本69。在
  • 通常MMCore版本的最后一位数字(补丁版本)会发生变化 当设备接口版本发生更改时。在
  • 但多个MMCore版本可能共享相同的设备接口版本。在

在Windows上加载设备适配器

大多数设备适配器应加载一次 setDeviceAdapterSearchPaths()已使用正确的目录调用, 就像上面的例子。但是,设备适配器可能有问题 这又依赖于外部DLL(通常是设备供应商库)。在

要解决此问题,首先确保Micro Manager应用程序可以正确 使用相同的配置文件加载所有设备。然后,使用其中一个 以下内容:

  • 暂时将当前目录更改为Micro Manager安装 加载配置文件时(使用os.chdir())。在

  • 将Micro Manager目录添加到PATH环境变量中。在

第一种方法模拟Micro Manager应用程序的工作方式(它总是运行 当前目录设置为安装目录)。但是 第二种方法在外部DLL轮流加载的情况下可能更健壮 以后再添加DLL。在

请报告Micro Manager应用程序可以加载 配置,但pymmcore不能,即使使用上述方法。在

许可证

pymmcore本身的许可证是lgpl2.1(请参见LICENSE.txt)。MMCore公司 Micro Manager组件(内置于pymmcore中)也位于 同样的许可证。Micro Manager的其他部分使用不同的许可证。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX SwingWorker等价物?   java如何检查一个字符串只包含数字和一个小数点?   java遇到了异常组织。阿帕奇。卡塔琳娜。LifecycleException:无法启动组件   java如何从日期格式获取最低计时单位?   java应用服务器与开发过程的集成   java我无法运行Junit测试   无法在java多线程处理中维护生产者任务的顺序   java如何在CLI应用程序中“拦截”Ctrl+C?   java如何使用JSch进行原子SFTP文件传输,以便在写入过程完成之前无法访问该文件?   java当用户摆弄html范围滑块时,如何更改内容(文本)?   如何在Java中向现有文件追加文本?   JUnit测试中的java模拟Apache驼峰位置   java Maven更新项目和依赖项