Я занимаюсь разработкой модуля Python и имею разные пакеты разработчика Python, Python 2.7, 3.4 и т. Д.
Этот модуль Python скомпилирован из исходного кода C.
Я настроил токсины для тестирования с python2.7 и python3.4.
Как это:
[tox]
envlist = py27,py34
[testenv]
basepython =
py27: python2.7
py34: python3.4
Тесты в 2.7 в порядке, но в 3.4 я получаю эту ошибку:
неопределенный символ: PyInstance_Type
Также важно, чтобы исходный код на языке C был сгенерирован Swig. И ошибка происходит из py-файла, сгенерированного Swig тоже.
Это код файла Python:
from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
def swig_import_helper():
import importlib
pkg = __name__.rpartition('.')[0]
mname = '.'.join((pkg, '_mymod')).lstrip('.')
try:
return importlib.import_module(mname)
except ImportError:
return importlib.import_module('_mymod')
_mymod = swig_import_helper()
del swig_import_helper