Python接口到Lab Streaming Layer
项目描述
pylsl
这是Lab Streaming Layer (LSL)的Python接口。LSL是一种覆盖网络,用于应用程序之间实时交换时间序列数据,通常用于研究环境。LSL有许多其他语言和平台的客户端,它们彼此兼容。
如果您遇到任何错误(最好使用GitHub项目的错误跟踪器),请告诉我们。
安装
先决条件
在所有非Windows平台和一些Windows-Python组合中,您必须首先获取liblsl共享库。有关更多详细信息,请参阅liblsl存储库文档。
从PyPI获取pylsl
pip install pylsl
从源代码获取pylsl
只有在需要修改或调试 pylsl 时,这才有必要。
- 下载 pylsl 源代码:
git clone https://github.com/labstreaminglayer/pylsl.git && cd pylsl
- 在
pylsl
工作目录中,运行pip install .
。- 注意:您可以使用
pip install -e .
安装并保留文件。这对于开发 pylsl 很方便。
- 注意:您可以使用
用法
查看 pylsl/examples 中的示例。请注意,这些示例可以直接通过命令行运行(例如)python -m pylsl.examples.{name-of-example}
。
您可以使用 python -c "import pylsl.examples; help(pylsl.examples)"
获取示例列表。
liblsl 加载
pylsl
首先在名为 PYLSL_LIB
的环境变量指定的文件路径中搜索 liblsl
,然后在包目录(Windows 的默认位置)中搜索,最后在正常的系统库文件夹中搜索。
如果共享对象未安装到标准搜索路径(或者安装了但无法找到,例如 其他错误),则建议您将其复制到 pylsl 安装模块路径的 lib
子文件夹中。例如,{path/to/env/}site-packages/pylsl/lib
。
site-packages/pylsl
路径仅在您在 Python 环境中安装了pylsl
之后才存在。- 可能需要创建
lib
子文件夹。 - 使用
python -m site
查找 "site-packages" 路径。 - 在使用符号链接的平台中使用
cp -L
。
或者,您可以使用环境变量。将 PYLSL_LIB
环境变量设置为库的位置或设置 LD_LIBRARY_PATH
为包含库的文件夹。例如,
PYLSL_LIB=/usr/local/lib/liblsl.so python -m pylsl.examples.{name-of-example}
,或者LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib python -m pylsl.examples.{name-of-example}
对于维护者
持续集成
pylsl 使用持续集成和分发。GitHub Actions 将在 GitHub 中创建发布时将新版本上传到 pypi。在创建 GitHub 发布之前,请确保在 pylsl/version.py
中增加版本号,并考虑在 .github/workflows/publish-to-pypi.yml
中更新 liblsl 依赖项。
Linux 二进制文件已弃用
我们最近停止为 Linux 构建二进制 wheels。实际上,manylinux
依赖项通常与实际系统不兼容。
手动分发
- 手动方式
rm -Rf build dist *.egg-info
python setup.py sdist bdist_wheel
- Linux 的额外步骤
auditwheel repair dist/*.whl -w dist
rm dist/*-linux_x86_64.whl
twine upload dist/*
- 对于 conda
- 构建 liblsl:
conda build ../liblsl/
conda build .
- 构建 liblsl:
Linux 上多线程的已知问题
- 据报道,至少在某些版本的 pylsl 中,在 Linux 上无法从非主线程调用
pylsl
函数。这已被报告会导致访问违规,并且可能发生在从入口提取时,以及从线程中访问入口信息结构时。 - 在 Linux Mint 20 上使用 Python 3.7.6 和 pylsl 1.14 进行最近的多线程测试(尤其是在使用锁保护库调用时)表明,此问题已解决,或者至少取决于您的机器。请参阅 https://github.com/labstreaminglayer/pylsl/issues/29
致谢
Pylsl 主要由 Christian Kothe 编写,当时在 Swartz 中心计算神经科学,UCSD。LSL 项目由美国陆军研究实验室根据合作协议编号 W911NF-10-2-0022 资助,以及通过 NINDS 奖金 3R01NS047293-06S1。pylsl 主要由 Chadwick Boulay 维护。感谢 Bastian Venthur、David Medine、Clemens Brunner 和 Matthew Grivich 的贡献、错误报告和建议。
项目详细信息
下载文件
下载适合您平台的应用程序。如果您不确定要选择哪个,请了解有关安装包的更多信息。