Скомпилированный файл cpython отсутствует в установленной библиотеке - PullRequest
0 голосов
/ 08 января 2019

Библиотека, которую мы используем, зависит от другой библиотеки, которая называется Jellyfish. Эта библиотека реализует логику, где, если есть версия cpython, она импортирует ее. Если нет, то будет использоваться pypy версия.

У Pypy есть известная проблема (ссылка: https://github.com/jamesturk/jellyfish/issues/46), когда реализация pypy библиотеки метафонов не соответствует версии cpython.

Заглядывая в виртуальные среды моих коллег, у них у всех есть файл cjellyfish.cpython-34m.so, созданный при установке, но у меня нет. В результате мой код ведет себя не так, как у них (в конечном итоге мы попадаем на другие стороны, за исключением: https://github.com/jamesturk/jellyfish/blob/master/jellyfish/init.py)

Мне любопытно, почему в моей системе нет файла cjellyfish.cpython-34m.so, а в других есть. По общему признанию, это вероятно, потому что я не очень знаком с тем, что происходит как часть процесса установки pip, и на каком этапе может произойти компиляция.

Итак, у меня есть несколько вопросов, все из которых, вероятно, связаны: 1) Есть ли что-нибудь, о чем вы могли бы подумать, чтобы файл не был сгенерирован? 2) Есть ли место, где я мог бы искать, где были бы сообщения об ошибках / журналах, которые в случае неудачной компиляции? 3) Может ли кто-нибудь объяснить или указать мне источник информации о том, что происходит в процессе pip install somelibrary, который генерирует скомпилированные файлы cpython.so?

Информация о моей системе:

  • Ubuntu 18.04
  • Python 3.4.3 работает в pyenv
  • Версия платформы #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018
  • platform.python_implementation() является CPython локально (соответствует уровню моих коллег)
  • platform.python_compiler() - это GCC 7.3.0, который отличается от моих коллег (например, GCC 4.4.7 20120313 (Red Hat 4.4.7-11))

1 Ответ

0 голосов
/ 08 января 2019

1 Эта проблема была исправлена ​​и закрыта

2 Вы должны проверить вывод pip install --log /tmp/metaphone.txt --ignore-installed metaphone и файл журнала /tmp/metaphone.txt, чтобы убедиться, что вам не хватает компонента, необходимого для построения *.so

...