无法在MacOS上pip安装scikits.talkbox

问题描述 投票:1回答:1

我正在尝试在MacOS上点安装scikits.talkbox。我使用Python 3.7.3

如果我跑步

pip install scikits.talkbox

pip3 install scikits.talkbox

我收到以下错误(希望我确实包括了所有内容)

scikits/talkbox/tools/src/cffilter.c:3287:21: error: no member named 'exc_type' in 'struct _ts'
    *type = tstate->exc_type;
            ~~~~~~  ^
scikits/talkbox/tools/src/cffilter.c:3288:22: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
    *value = tstate->exc_value;
                     ^~~~~~~~~
                     curexc_value
/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
    PyObject *curexc_value;
              ^
scikits/talkbox/tools/src/cffilter.c:3289:19: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
    *tb = tstate->exc_traceback;
                  ^~~~~~~~~~~~~
                  curexc_traceback
/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
    PyObject *curexc_traceback;
              ^
scikits/talkbox/tools/src/cffilter.c:3298:24: error: no member named 'exc_type' in 'struct _ts'
    tmp_type = tstate->exc_type;
               ~~~~~~  ^
scikits/talkbox/tools/src/cffilter.c:3299:25: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
    tmp_value = tstate->exc_value;
                        ^~~~~~~~~
                        curexc_value
/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
    PyObject *curexc_value;
              ^
scikits/talkbox/tools/src/cffilter.c:3300:22: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
    tmp_tb = tstate->exc_traceback;
                     ^~~~~~~~~~~~~
                     curexc_traceback
/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
    PyObject *curexc_traceback;
              ^
scikits/talkbox/tools/src/cffilter.c:3301:13: error: no member named 'exc_type' in 'struct _ts'
    tstate->exc_type = type;
    ~~~~~~  ^
scikits/talkbox/tools/src/cffilter.c:3302:13: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
    tstate->exc_value = value;
            ^~~~~~~~~
            curexc_value
/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
    PyObject *curexc_value;
              ^
scikits/talkbox/tools/src/cffilter.c:3303:13: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
    tstate->exc_traceback = tb;
            ^~~~~~~~~~~~~
            curexc_traceback
/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
    PyObject *curexc_traceback;
              ^
scikits/talkbox/tools/src/cffilter.c:3319:24: error: no member named 'exc_type' in 'struct _ts'
    tmp_type = tstate->exc_type;
               ~~~~~~  ^
scikits/talkbox/tools/src/cffilter.c:3320:25: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
    tmp_value = tstate->exc_value;
                        ^~~~~~~~~
                        curexc_value
/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
    PyObject *curexc_value;
              ^
scikits/talkbox/tools/src/cffilter.c:3321:22: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
    tmp_tb = tstate->exc_traceback;
                     ^~~~~~~~~~~~~
                     curexc_traceback
/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
    PyObject *curexc_traceback;
              ^
scikits/talkbox/tools/src/cffilter.c:3322:13: error: no member named 'exc_type' in 'struct _ts'
    tstate->exc_type = *type;
    ~~~~~~  ^
scikits/talkbox/tools/src/cffilter.c:3323:13: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
    tstate->exc_value = *value;
            ^~~~~~~~~
            curexc_value
/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
    PyObject *curexc_value;
              ^
scikits/talkbox/tools/src/cffilter.c:3324:13: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
    tstate->exc_traceback = *tb;
            ^~~~~~~~~~~~~
            curexc_traceback
/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
    PyObject *curexc_traceback;
              ^
scikits/talkbox/tools/src/cffilter.c:3537:25: warning: implicit declaration of function 'PyNumber_Int' is invalid in C99 [-Wimplicit-function-declaration]
        PyObject* tmp = PyNumber_Int(x); if (!tmp) return (PY_LONG_LONG)-1;
                        ^
scikits/talkbox/tools/src/cffilter.c:3537:19: warning: incompatible integer to pointer conversion initializing 'PyObject *' (aka 'struct _object *') with an expression of type 'int' [-Wint-conversion]
        PyObject* tmp = PyNumber_Int(x); if (!tmp) return (PY_LONG_LONG)-1;
                  ^     ~~~~~~~~~~~~~~~
scikits/talkbox/tools/src/cffilter.c:3558:25: warning: implicit declaration of function 'PyNumber_Int' is invalid in C99 [-Wimplicit-function-declaration]
        PyObject* tmp = PyNumber_Int(x); if (!tmp) return (PY_LONG_LONG)-1;
                        ^
scikits/talkbox/tools/src/cffilter.c:3558:19: warning: incompatible integer to pointer conversion initializing 'PyObject *' (aka 'struct _object *') with an expression of type 'int' [-Wint-conversion]
        PyObject* tmp = PyNumber_Int(x); if (!tmp) return (PY_LONG_LONG)-1;
                  ^     ~~~~~~~~~~~~~~~

我怀疑是setuptools出现了一些问题,我刚刚升级了它,没有结果。有什么想法吗?

python macos python-3.7 scikits
1个回答
0
投票

我在macOS的Python 3.7.4上遇到相同的错误。它与软件包的Cython相关代码有关:

scikits/talkbox/tools/src/cffilter.c:3287:21: error: no member named 'exc_type' in 'struct _ts'
    *type = tstate->exc_type;
            ~~~~~~  ^
scikits/talkbox/tools/src/cffilter.c:3288:22: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
    *value = tstate->exc_value;
                     ^~~~~~~~~
                     curexc_value

首先,scikits.talkbox软件包是非常旧,其最新发行版是[[waaaaay back于2009年8月28日发布(请参阅0.25),大约10年前!似乎它与Python 3不兼容,甚至还没有移植。

尽管它确实可以在Python 2.7上成功安装:

$ python -V Python 2.7.16 $ python -m pip install numpy scipy ... $ python -m pip install scikits.talkbox DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support Collecting scikits.talkbox Using cached https://files.pythonhosted.org/packages/65/a0/410eb932e1765186a4728d1c9b28410695d554c47439bcb69a407d5d3921/scikits.talkbox-0.2.5.tar.gz Requirement already satisfied: numpy in /Users/cerberus/.virtualenvs/test-py27/lib/python2.7/site-packages (from scikits.talkbox) (1.16.5) Building wheels for collected packages: scikits.talkbox Building wheel for scikits.talkbox (setup.py) ... done Created wheel for scikits.talkbox: filename=scikits.talkbox-0.2.5-cp27-cp27m-macosx_10_13_x86_64.whl size=68422 sha256=4585d129fe5ba2de97935f723f2d84a8b908480528c66cf00714f8a5f56c6bee Stored in directory: /Users/cerberus/Library/Caches/pip/wheels/40/06/3f/05c8ab2b4a0cfb32ad02c449e5c949c592cd0c6458db0e7f5f Successfully built scikits.talkbox Installing collected packages: scikits.talkbox Successfully installed scikits.talkbox-0.2.5

[如果需要Python 3支持,则必须在scikits.talkbox Github page处提出一个问题,但是从该存储库的历史来看,似乎作者不再活跃于该项目。

[出于好奇,我尝试找到一种在Python 3上安装的解决方法。基本上,该软件包包括预编译的Cython文件,这些文件与Python 3不兼容(*.c文件给出了错误)。我试图在Python3.7上用Cython重新编译它:

# download the source code from PyPi $ wget https://files.pythonhosted.org/packages/65/a0/410eb932e1765186a4728d1c9b28410695d554c47439bcb69a407d5d3921/scikits.talkbox-0.2.5.tar.gz $ tar -xvzf scikits.talkbox-0.2.5.tar.gz $ cd scikits.talkbox-0.2.5/ # re-compile with Cython on Python 3.7 $ python3 -V Python 3.7.4 $ python3 -m pip install numpy scipy cython $ find . -name '*.pyx' -exec cython {} \; $ python3 -m pip install . ... Successfully installed scikits.talkbox-0.2.5

似乎使用它时我已经成功安装了它[[BUT:

$ python3 Python 3.7.4 (default, Sep 7 2019, 18:29:04) [Clang 10.0.0 (clang-1000.11.45.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import scikits.talkbox ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__'] Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/cerberus/.virtualenvs/test-py37/lib/python3.7/site-packages/scikits/talkbox/__init__.py", line 6, in <module> __all__ += tools.__all__ AttributeError: module 'tools' has no attribute '__all__' >>>

..这与软件包的仓库中报告的未解决,未被注意的错误相同:https://github.com/cournape/talkbox/issues/8

所以...看来您唯一的选择是:


使用Python 2.7

    使用另一个与Python3兼容的其他库
  • 例如librosa中建议的[C0
© www.soinside.com 2019 - 2024. All rights reserved.