You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pip安装pyTsetlinMachine失败及手动导入报错求助

pyTsetlinMachine安装与导入问题

1. pip安装失败

执行pip install pyTsetlinMachine时触发编译错误,核心问题是Windows系统缺少类Unix环境的头文件,关键报错:

pyTsetlinMachine/IndexedTsetlinMachine.c(32): fatal error C1083: Cannot open include file: 'sys/time.h': No such file or directory

完整错误日志如下:

WARNING: Ignoring invalid distribution ~yspark (C:\Users\Dell\AppData\Local\Programs\Python\Python311\Lib\site-packages)
Collecting PyTsetlinMachine
  Using cached pyTsetlinMachine-0.6.6.tar.gz (25 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: PyTsetlinMachine
  Building wheel for PyTsetlinMachine (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [26 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-311
      creating build\lib.win-amd64-cpython-311\pyTsetlinMachine
      copying pyTsetlinMachine\tm.py -> build\lib.win-amd64-cpython-311\pyTsetlinMachine
      copying pyTsetlinMachine\tools.py -> build\lib.win-amd64-cpython-311\pyTsetlinMachine
      copying pyTsetlinMachine\__init__.py -> build\lib.win-amd64-cpython-311\pyTsetlinMachine
      running build_ext
      building 'libTM' extension
      creating build\temp.win-amd64-cpython-311
      creating build\temp.win-amd64-cpython-311\Release
      creating build\temp.win-amd64-cpython-311\Release\pyTsetlinMachine
      "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IpyTsetlinMachine -IC:\Users\Dell\AppData\Local\Programs\Python\Python311\include -IC:\Users\Dell\AppData\Local\Programs\Python\Python311\Include "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\ATLMFC\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt" /TcpyTsetlinMachine/ConvolutionalTsetlinMachine.c /Fobuild\temp.win-amd64-cpython-311\Release\pyTsetlinMachine/ConvolutionalTsetlinMachine.obj
      ConvolutionalTsetlinMachine.c
      pyTsetlinMachine/ConvolutionalTsetlinMachine.c(175): warning C4013: '__builtin_popcount' undefined; assuming extern returning int
      "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IpyTsetlinMachine -IC:\Users\Dell\AppData\Local\Programs\Python\Python311\include -IC:\Users\Dell\AppData\Local\Programs\Python\Python311\Include "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\ATLMFC\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt" /TcpyTsetlinMachine/EmbeddingTsetlinMachine.c /Fobuild\temp.win-amd64-cpython-311\Release\pyTsetlinMachine/EmbeddingTsetlinMachine.obj
      EmbeddingTsetlinMachine.c
      pyTsetlinMachine/EmbeddingTsetlinMachine.c(161): warning C4244: '=': conversion from 'double' to 'unsigned int', possible loss of data
      pyTsetlinMachine/EmbeddingTsetlinMachine.c(159): warning C4244: 'initializing': conversion from 'double' to 'unsigned int', possible loss of data
      pyTsetlinMachine/EmbeddingTsetlinMachine.c(365): warning C4244: 'return': conversion from 'double' to 'float', possible loss of data
      "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IpyTsetlinMachine -IC:\Users\Dell\AppData\Local\Programs\Python\Python311\include -IC:\Users\Dell\AppData\Local\Programs\Python\Python311\Include "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\ATLMFC\include" "-IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt" /TcpyTsetlinMachine/IndexedTsetlinMachine.c /Fobuild\temp.win-amd64-cpython-311\Release\pyTsetlinMachine/IndexedTsetlinMachine.obj
      IndexedTsetlinMachine.c
      pyTsetlinMachine/IndexedTsetlinMachine.c(32): fatal error C1083: Cannot open include file: 'sys/time.h': No such file or directory
      error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.36.32532\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for PyTsetlinMachine
  Running setup.py clean for PyTsetlinMachine
Failed to build PyTsetlinMachine
ERROR: Could not build wheels for PyTsetlinMachine, which is required to install pyproject.toml-based projects

2. 手动解压导入失败

下载v0.6.0版本源码包并解压到site-packages后,执行import pyTsetlinMachine.tm.MultiClassTsetlinMachine2D时,出现以下错误:

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
Cell In[21], line 16
     13 import cv2
     15 # For Tsetlin Machine
---> 16 import pyTsetlinMachine.tm.MultiClassTsetlinMachine2D

File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\pyTsetlinMachine\tm.py:29
     26 import os
     28 this_dir, this_filename = os.path.split(__file__)
---> 29 _lib = np.ctypeslib.load_library('libTM', os.path.join(this_dir, ".."))    
     31 class CEmbeddingTsetlinMachine(C.Structure):
     32     None

File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\numpy\ctypeslib.py:161, in load_library(libname, loader_path)
    159             raise
    160 ## if no successful return in the libname_ext loop:
---> 161 raise OSError("no file with expected extension")

OSError: no file with expected extension

解决方案

  • 修复Windows头文件依赖:sys/time.h是类Unix系统专属头文件,Windows无此文件。找到源码中的IndexedTsetlinMachine.c,将头部的#include <sys/time.h>替换为:
    #ifdef _WIN32
    #include <windows.h>
    #include <time.h>
    #else
    #include <sys/time.h>
    #endif
    
  • 手动编译生成动态库:在修改后的源码目录下执行命令:
    python setup.py build_ext --inplace
    
    编译完成后会生成libTM.pyd(Windows平台),将整个pyTsetlinMachine文件夹复制到Python的site-packages目录中。
  • 使用WSL环境安装:若不想修改源码,可直接在Windows子系统Linux(WSL)中执行pip install pyTsetlinMachine,类Unix环境原生支持sys/time.h,编译不会出错。

内容的提问来源于stack exchange,提问作者Rohit Burman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:50:54