-
Notifications
You must be signed in to change notification settings - Fork 969
Open
Labels
Description
Expected Behavior
I should be able to run urh
Actual Behavior
I run into different errors.
I tried every method on the readme.
Steps To Reproduce
doog@raspberrypi:~ $ pipx install urh
Fatal error from pip prevented installation. Full pip output in file:
/home/doog/.local/state/pipx/log/cmd_2026-01-08_19.13.44_pip_errors.log
pip seemed to fail to build package:
'urh'
Some possibly relevant errors from pip install:
error: subprocess-exited-with-error
ERROR: Failed to build 'urh' when getting requirements to build wheel
Error installing urh.
doog@raspberrypi:~ $ xhost +local:docker
non-network local connections being added to access control list
doog@raspberrypi:~ $ sudo docker run --rm \
-e DISPLAY=${DISPLAY} \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $HOME:/root \
--privileged \
jopohl/urh
Unable to find image 'jopohl/urh:latest' locally
latest: Pulling from jopohl/urh
3629e278a446: Pull complete
7e49dc6156b0: Pull complete
Digest: sha256:c2aafbc66c852dfbbce5a7e9c18c71ca26fdd7d1348171c7432eef1ac6b47e4a
Status: Downloaded newer image for jopohl/urh:latest
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
exec /bin/sh: exec format error
doog@raspberrypi:~ $ git clone https://github.com/jopohl/urh/
cd urh/src/urh
PYTHONPATH=.. ./main.py
Cloning into 'urh'...
remote: Enumerating objects: 24957, done.
remote: Counting objects: 100% (589/589), done.
remote: Compressing objects: 100% (389/389), done.
remote: Total 24957 (delta 345), reused 202 (delta 198), pack-reused 24368 (from 4)
Receiving objects: 100% (24957/24957), 54.54 MiB | 9.82 MiB/s, done.
Resolving deltas: 100% (17622/17622), done.
Traceback (most recent call last):
File "/home/doog/urh/src/urh/./main.py", line 9, in <module>
from PyQt6.QtCore import QTimer, Qt
ModuleNotFoundError: No module named 'PyQt6'
doog@raspberrypi:~/urh/src/urh $ python -m venv .venv
doog@raspberrypi:~/urh/src/urh $ ./.venv/bin/pip install pyqt6
Downloading pyqt6_sip-13.10.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (323 kB)
Installing collected packages: PyQt6-Qt6, PyQt6-sip, pyqt6
Successfully installed PyQt6-Qt6-6.10.1 PyQt6-sip-13.10.3 pyqt6-6.10.1
doog@raspberrypi:~/urh/src/urh $ ./.venv/bin/python main.py
Traceback (most recent call last):
File "/home/doog/urh/src/urh/main.py", line 14, in <module>
import urh.ui.urh_rc
ModuleNotFoundError: No module named 'urh'
oog@raspberrypi:~/urh $ ./.venv/bin/python setup.py
Skipping native support for airspy
Skipping native support for bladerf
Skipping native support for hackrf
Skipping native support for limesdr
Skipping native support for plutosdr
Found rtlsdr lib. Will compile with native rtlsdr support
Skipping native support for usrp
Skipping native support for sdrplay
Compiling src/urh/cythonext/signal_functions.pyx because it changed.
Compiling src/urh/cythonext/util.pyx because it changed.
Compiling src/urh/cythonext/awre_util.pyx because it changed.
Compiling src/urh/cythonext/path_creator.pyx because it changed.
Compiling src/urh/cythonext/auto_interpretation.pyx because it changed.
Compiling src/urh/dev/native/lib/rtlsdr.pyx because it changed.
[1/6] Cythonizing src/urh/cythonext/auto_interpretation.pyx
Error compiling Cython file:
------------------------------------------------------------
...
# noinspection PyUnresolvedReferences
cimport numpy as np
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:2:8: 'numpy.pxd' not found
Error compiling Cython file:
------------------------------------------------------------
...
if maximum / <double>minimum - (maximum / minimum) < threshold:
histogram[minimum] += 1
return histogram
cpdef np.ndarray[np.uint64_t, ndim=1] merge_plateaus(np.ndarray[np.uint64_t, ndim=1] plateaus,
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:145:6: 'ndarray' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
if maximum / <double>minimum - (maximum / minimum) < threshold:
histogram[minimum] += 1
return histogram
cpdef np.ndarray[np.uint64_t, ndim=1] merge_plateaus(np.ndarray[np.uint64_t, ndim=1] plateaus,
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:145:53: 'ndarray' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
i += 1
return result[:current+1]
cpdef np.ndarray[np.uint64_t, ndim=1] get_plateau_lengths(float[:] rect_data, float center, int percentage=25):
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:179:6: 'ndarray' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
try:
return buffer[k//2]
finally:
free(buffer)
cpdef np.ndarray[np.float32_t, ndim=1] median_filter(double[:] data, unsigned int k=3):
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:227:6: 'ndarray' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
:param plateau_lengths:
:return:
"""
cdef uint64_t i, j, x, y, minimum, maximum, num_lengths = len(plateau_lengths)
cdef np.ndarray[np.uint64_t, ndim=1] histogram = np.zeros(int(np.max(plateau_lengths)) + 1, dtype=np.uint64)
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:124:9: 'ndarray' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
:param plateau_lengths:
:return:
"""
cdef uint64_t i, j, x, y, minimum, maximum, num_lengths = len(plateau_lengths)
cdef np.ndarray[np.uint64_t, ndim=1] histogram = np.zeros(int(np.max(plateau_lengths)) + 1, dtype=np.uint64)
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:124:9: 'ndarray' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
uint64_t max_count):
cdef uint64_t j, n, L = len(plateaus), current = 0, i = 1, tmp_sum
if L == 0:
return np.zeros(0, dtype=np.uint64)
cdef np.ndarray[np.uint64_t, ndim=1] result = np.empty(L, dtype=np.uint64)
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:152:9: 'ndarray' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
uint64_t max_count):
cdef uint64_t j, n, L = len(plateaus), current = 0, i = 1, tmp_sum
if L == 0:
return np.zeros(0, dtype=np.uint64)
cdef np.ndarray[np.uint64_t, ndim=1] result = np.empty(L, dtype=np.uint64)
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:152:9: 'ndarray' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
free(buffer)
cpdef np.ndarray[np.float32_t, ndim=1] median_filter(double[:] data, unsigned int k=3):
cdef long long start, end, i, n = len(data)
cdef np.ndarray[np.float32_t, ndim=1] result = np.zeros(n, dtype=np.float32)
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:230:9: 'ndarray' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
free(buffer)
cpdef np.ndarray[np.float32_t, ndim=1] median_filter(double[:] data, unsigned int k=3):
cdef long long start, end, i, n = len(data)
cdef np.ndarray[np.float32_t, ndim=1] result = np.zeros(n, dtype=np.float32)
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:230:9: 'ndarray' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
while i < L and current < max_count:
if plateaus[i] <= tolerance:
# Look ahead to see whether we need to merge a larger window e.g. for 67, 1, 10, 1, 21
n = 2
while i + n < L and plateaus[i + n] <= tolerance:
^
------------------------------------------------------------
src/urh/cythonext/auto_interpretation.pyx:162:43: Compiler crash in OptimizeBuiltinCalls
ModuleNode.body = StatListNode(auto_interpretation.pyx:2:0)
StatListNode.stats[12] = StatListNode(auto_interpretation.pyx:145:0)
StatListNode.stats[0] = CFuncDefNode(auto_interpretation.pyx:145:0,
args = [...]/3,
c_compile_guard = '',
modifiers = [...]/0,
node_positions = [...]/115,
outer_attrs = [...]/2,
overridable = True,
visibility = 'private')
CFuncDefNode.body = StatListNode(auto_interpretation.pyx:148:4,
is_terminator = True)
StatListNode.stats[6] = WhileStatNode(auto_interpretation.pyx:158:4)
WhileStatNode.body = StatListNode(auto_interpretation.pyx:159:8)
StatListNode.stats[0] = IfStatNode(auto_interpretation.pyx:159:8)
IfStatNode.if_clauses[0] = IfClauseNode(auto_interpretation.pyx:159:11)
IfClauseNode.body = StatListNode(auto_interpretation.pyx:161:12)
StatListNode.stats[1] = WhileStatNode(auto_interpretation.pyx:162:12)
WhileStatNode.condition = BoolBinopNode(auto_interpretation.pyx:162:28,
is_temp = True,
operator = 'and',
result_is_used = True,
use_managed_ref = True)
BoolBinopNode.operand2 = BoolBinopResultNode(auto_interpretation.pyx:162:48,
is_temp = True,
result_is_used = True,
use_managed_ref = True)
BoolBinopResultNode.arg = ProxyNode(auto_interpretation.pyx:162:48,
result_is_used = True,
use_managed_ref = True)
ProxyNode.arg = CoerceToTempNode(auto_interpretation.pyx:162:48,
is_temp = 1,
result_is_used = True,
use_managed_ref = True)
CoerceToTempNode.arg = PrimaryCmpNode(auto_interpretation.pyx:162:48,
operator = '<=',
result_is_used = True,
use_managed_ref = True)
PrimaryCmpNode.operand1 = IndexNode(auto_interpretation.pyx:162:40,
is_subscript = True,
result_is_used = True,
use_managed_ref = True)
IndexNode.index = AddNode(auto_interpretation.pyx:162:43,
infix = True,
operator = '+',
result_is_used = True,
use_managed_ref = True)
Compiler crash traceback from this point on:
File "Cython/Compiler/Visitor.py", line 174, in Cython.Compiler.Visitor.TreeVisitor._visit
File "Cython/Compiler/Visitor.py", line 538, in Cython.Compiler.Visitor.MethodDispatcherTransform.visit_BinopNode
File "Cython/Compiler/Visitor.py", line 552, in Cython.Compiler.Visitor.MethodDispatcherTransform._visit_binop_node
AttributeError: 'NoneType' object has no attribute 'is_builtin_type'
Traceback (most recent call last):
File "/home/doog/urh/setup.py", line 171, in <module>
ext_modules=get_extensions(),
~~~~~~~~~~~~~~^^
File "/home/doog/urh/setup.py", line 128, in get_extensions
extensions = cythonize(
extensions,
compiler_directives=COMPILER_DIRECTIVES,
compile_time_env=device_extras,
)
File "/home/doog/urh/.venv/lib/python3.13/site-packages/Cython/Build/Dependencies.py", line 1153, in cythonize
cythonize_one(*args)
~~~~~~~~~~~~~^^^^^^^
File "/home/doog/urh/.venv/lib/python3.13/site-packages/Cython/Build/Dependencies.py", line 1297, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: src/urh/cythonext/auto_interpretation.pyx
Platform Specifications
- OS: Debian 13.2
- URH version: 2.10.0
- Python version: 3.13
- Installed via (attempted all methods)
Reactions are currently unavailable