Невозможно импортировать пакет sox в python после успешной установки - PullRequest
0 голосов
/ 08 ноября 2018

Я установил sox с помощью команды ' conda install -c conda-forge sox ' и pysox с помощью ' conda install -c davidbgonzalez pysox '. Но когда я пытаюсь импортировать sox, он говорит: «Нет модуля с именем sox». Как решить эту проблему?

1 Ответ

0 голосов
/ 11 ноября 2018

Если вы посмотрите на примеры на https://pythonhosted.org/pysox/intro.html#simple-examples,, вам нужно импортировать pysox, а не sox:

$ python
Python 2.7.15 |Anaconda, Inc.| (default, Oct 23 2018, 18:31:10) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pysox # or the one below
>>> from pysox import sox

Кроме того, при первой попытке этого вы можете увидетьошибка:

>>> import pysox
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/tmp/p/lib/python2.7/site-packages/pysox/__init__.py", line 60, in <module>
    from pysox.sox import CSoxStream, CEffect, CEffectsChain, CPysoxPipeStream
ImportError: libsox.so.2: cannot open shared object file: No such file or directory

Это потому, что conda-forge предоставила sox v14.4.2 (он предоставляет libsox.so.3), а pysox, предоставленный davidbgonzalez, был создан для более старой версии.

Глядя на https://abi -laboratory.pro / index.php? View = timeline & l = sox и надеясь, что эта сборка pysox не использует ни одного из удаленных символов, вы можете исправить эту проблему, создавсимволическая ссылка и скрещивание пальцев:

$ ln -s $CONDA_PREFIX/lib/libsox.so.{3,2}

$ ls -l $CONDA_PREFIX/lib/libsox.so.2
lrwxrwxrwx. 1 nwani nwani 22 Nov 10 23:54 /tmp/p/lib/libsox.so.2 -> /tmp/p/lib/libsox.so.3
...