Наконец-то я нашел решение ...
- В вашем венве:
pip install Cython setuptools
Найдите, где находится ваш компилятор g cc ... если вы уже установили, выполните следующие действия, в противном случае найдите и установите один ...
$ mdfind gcc | grep gcc
Поместите весь каталог g cc в venv вашего проекта. (путь: / My_Project / venv / g cc)
и setup.py должны быть следующими ... (путь : / My_Project / package / setup.py )
from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize
from Cython.Distutils import build_ext
import os
os.environ["CC"]="../venv/gcc/9.3.0/bin/gcc-9"
os.environ["CXX"]="../venv/gcc/9.3.0/bin/gcc-9"
ext_modules = [Extension(
"filename",
["filename.pyx"],
language='c',
extra_compile_args=['-fopenmp',"-Os",],
extra_link_args=['-fopenmp', ],
)
]
setup(
name='filename',
cmd_class = {'build_ext': build_ext},
ext_modules= cythonize(ext_modules),
)
Ваш файл Cython:
filename.pyx ... может начинаться с комментария директивы компилятора в верхней части
filename.pyx следующим образом:
# distutils: extra_compile_args = -fopenmp
# distutils: extra_link_args = -fopenmp
Запустите в вашем венве команду компиляции:
$ python setup.py build_ext -i
Наконец, вы можете импортировать ваш файл Cython в ваш код ... вверху вашего python файла и т.д. c.
mycode.py :
import filename
filename.myCythonFunc()
Выше приведено решение для OSX-10.15.3 macOS Catalina.