跳转到主要内容

Python接口到Lab Streaming Layer

项目描述

pylsl

publish workflow PyPI version

这是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 为包含库的文件夹。例如,

  1. PYLSL_LIB=/usr/local/lib/liblsl.so python -m pylsl.examples.{name-of-example},或者
  2. 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 依赖项通常与实际系统不兼容。

手动分发

  1. 手动方式
    1. rm -Rf build dist *.egg-info
    2. python setup.py sdist bdist_wheel
    3. Linux 的额外步骤
      • auditwheel repair dist/*.whl -w dist
      • rm dist/*-linux_x86_64.whl
    4. twine upload dist/*
  2. 对于 conda
    1. 构建 liblsl: conda build ../liblsl/
    2. conda build .

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 的贡献、错误报告和建议。

项目详细信息


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅生成分发存档的教程

构建分发

pylsl-1.16.2-py2.py3-none-win_amd64.whl (353.6 kB 查看散列)

上传时间 Python 2 Python 3 Windows x86-64

pylsl-1.16.2-py2.py3-none-win32.whl (283.5 kB 查看散列)

上传时间 Python 2 Python 3 Windows x86

pylsl-1.16.2-py2.py3-none-any.whl (36.3 kB 查看散列)

上传时间 Python 2 Python 3

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面