实验室流层的 Python 接口
项目描述
pylsl
这是Lab Streaming Layer (LSL)的 Python 接口。LSL 是一个覆盖网络,用于在应用程序之间实时交换时间序列,最常用于研究环境。LSL 有许多其他相互兼容的语言和平台的客户端。
如果您遇到任何错误,请告诉我们(最好使用 GitHub 项目上的问题跟踪器)。
安装
先决条件
在所有非 Windows 平台上以及对于某些 Windows-Python 组合,您必须首先获取 liblsl 共享库:
- 在许多平台上,它可以安装
conda install -c conda-forge liblsl - 此外,在 Mac 上,它可以安装
brew install labstreaminglayer/tap/lsl - 您可以从liblsl 发布页面找到适当的 liblsl 共享对象(Linux 上的 *.so、MacOS 上的 *.dylib 或 Windows 上的 *.dll) 。
- 否则,您可能会尝试克隆 liblsl 并使用它的
standalone_compilation_linux.sh脚本(适用于树莓派)。
准备好的发行版
使用pip从pypi安装:pip install pylsl
对于几个发行版,pip 发行版附带 lsl.dll。对于其他所有情况,liblsl 必须安装在 PATH 上的某处(请参阅上面的先决条件)或下载并复制到搜索路径上的某处。我们建议您将其复制到 pylsl 安装模块路径的lib子文件夹中。即{path/to/env/}site-packages/pylsl/lib。用于python -m site查找“站点包”路径。(cp -L在使用符号链接的平台上使用)
自建
- 下载 pylsl 源码:
git clone https://github.com/labstreaminglayer/liblsl-Python.git && cd liblsl-Python - 将共享对象(请参阅上面的先决条件)复制到
liblsl-Python/pylsl/lib. - 从
liblsl-Python工作目录运行pip install ..- 注意:您可以使用
pip install -e .来安装,同时将文件保持在原位。这对开发 pylsl 很方便。
- 注意:您可以使用
用法
请参阅 pylsl/examples 中的示例。请注意,这些可以使用 (eg) 直接从命令行运行python -m pylsl.examples.{name-of-example}。
您可以通过以下方式获取示例列表python -c "import pylsl.examples; help(pylsl.examples)"
对于维护者
持续集成
pylsl 使用持续集成和分发。
每当推送新的提交时,AppVeyor 都会准备几个文件。首先,它准备源轮——这在任何没有特定二进制分发的平台和 Python 版本上都很有用。然后准备二进制轮子;它从其发布页面下载 liblsl,将其复制到包中,然后构建轮子以进行分发。对于 Windows 和 Mac 的几个变体重复此过程。
此外,每当在git tag推送到 master 分支的提交上使用 new 时,CI 系统都会将轮子部署到 pypi。
不推荐使用 Linux 二进制文件
我们最近停止为 Linux 构建二进制轮子。在实践中,manylinux依赖项通常与实际系统不兼容。
当我们确实制作了许多 Linux 发行版时,它们依赖于特殊的 liblsl 构建,这些构建不会自动推送到 liblsl 发布页面。需要在Azure上手动运行特殊管道,然后将工件上传到发布页面。Azure 管道配置保留在 liblsl 存储库中,以防再次需要(不太可能)。
手动分发
- 手动方式:
rm -Rf build dist *.egg-infopython setup.py sdist bdist_wheel- Linux 上的其他步骤:
auditwheel repair dist/*.whl -w distrm dist/*-linux_x86_64.whl
twine upload dist/*
- 对于康达
- 构建 liblsl:
conda build ../liblsl/ conda build .
- 构建 liblsl:
Linux 上多线程的已知问题
- 至少对于某些版本的 pylsl ,据报道,在 Linux 上运行不能
pylsl从不是主线程的线程调用函数。据报道,这会导致访问冲突,并且可能在从入口拉取时发生,也可能在访问线程中的入口信息结构时发生。 - 最近使用 Python 3.7.6 进行的多线程测试(尤其是在使用锁保护库调用时)。在 Linux Mint 20 上使用 pylsl 1.14 表明此问题已解决,或者至少取决于您的机器。见https://github.com/labstreaminglayer/liblsl-Python/issues/29
致谢
Pylsl 主要由 Christian Kothe 在加州大学圣地亚哥分校 Swartz 计算神经科学中心编写。LSL 项目由陆军研究实验室根据合作协议编号 W911NF-10-2-0022 以及 NINDS 赠款 3R01NS047293-06S1 资助。pylsl 主要由 Chadwick Boulay 维护。感谢 Bastian Venthur、David Medine、Clemens Brunner 和 Matthew Grivich 的贡献、错误报告和建议。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
内置发行版
pylsl -1.16.0-py2.py3-none-macosx_10_13_x86_64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 673a280416dd58ee70cc41d1a82809100515c060c8b40f542dc5f9e68ca653a1 |
|
| MD5 | cb9a4c97d52d882079fe0af21bec5811 |
|
| 布莱克2-256 | 4d44b9a93ce76f1a36ac1a1537a42ffa6a5fb5c755e8974da70a394e7002d94c |