Я пытаюсь использовать модуль python, называемый pyperler, который использует cython для внутреннего использования, и его нужно скомпилировать. Мне удалось скомпилировать его и установить в месте, отличном от используемого по умолчанию (местоположение по умолчанию не доступно для записи NFS), и для того, чтобы python «увидел» его, я использую модуль «imp», которому я передаю путь к месту установки pyperler. Но когда я пытаюсь использовать его в тривиальной тестовой программе python, я получаю сообщение об ошибке «неопределенный символ: av_top_index»
Ниже приведен тест python код программы
import sys, os, imp
install_dir = ".../pyperler_installation_dir/pyperler-0.2-py3.7-linux-x86_64.egg/"
my_module_file = os.path.join(install_dir, "pyperler.py")
pyperler = imp.load_source('pyperler', my_module_file)
import pyperler; i = pyperler.Interpreter()
print(i)
print(type(pyperler) )
и ошибка, которую я получаю:
Traceback (most recent call last):
File "test2.py", line 6, in <module>
pyperler = imp.load_source('pyperler', my_module_file)
File ".../python/lib/python3.7/imp.py", line 171, in load_source
module = _load(spec)
File "<frozen importlib._bootstrap>", line 696, in _load
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File ".../pyperler_installation_dir/pyperler-0.2-py3.7-linux-x86_64.egg/pyperler.py", line 7, in <module>
__bootstrap__()
File ".../pyperler_installation_dir/pyperler-0.2-py3.7-linux-x86_64.egg/pyperler.py", line 6, in __bootstrap__
imp.load_dynamic(__name__,__file__)
File ".../200105/python/lib/python3.7/imp.py", line 342, in load_dynamic
return _load(spec)
File "<frozen importlib._bootstrap>", line 696, in _load
File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
File "<frozen importlib._bootstrap>", line 583, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 1043, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: .../pyperler_installation_dir/pyperler-0.2-py3.7-linux-x86_64.egg/pyperler.cpython-37m-x86_64-linux-gnu.so: undefined symbol: av_top_index
ОС - Oracle linux 7.7 Python версия: 3.7.4 G CC версия: 4.8.5 perl версия : 5.28
Команда, которую я использовал для компиляции модуля pyperler:
sudo PYTHONPATH=.../pyperler_installation_dir/ su -c ' .../user_python-conversion/python/bin/python3 setup.py install --root=".../pyperler_installation_dir/"'
Кто-нибудь знает, как решить эту ошибку?