Библиотека, которую мы используем, зависит от другой библиотеки, которая называется 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)
)