Cython Hello World: модуль не найден; helloworld.pyd не создан - PullRequest
0 голосов
/ 27 мая 2020

Я просмотрел другие вопросы Cython "Hello World", и их ошибки сильно отличаются от моих. Прошу прощения, если это повторяющийся вопрос - я бы хотел посмотреть, что я дублирую, потому что я просмотрел все. Я следую инструкциям здесь: https://cython.readthedocs.io/en/latest/src/tutorial/cython_tutorial.html

Вот мой helloworld.pyx:

print("Hello World")

My setup.py:

from setuptools import setup
from Cython.Build import cythonize

setup(
    ext_modules = cythonize("helloworld.pyx")
)

Я перешел в командную строку и запустил python setup.py build_ext --inplace, затем запустил `import helloworld 'в консоли Spyder (а затем в записной книжке Jupyter, на всякий случай).

Ошибка:

Traceback (most recent call last):

  File "<ipython-input-1-39f3e3c18221>", line 1, in <module>
    import helloworld

ModuleNotFoundError: No module named 'helloworld'

В руководстве сказано, что команда должна была создать файл с именем helloworld.pyd, поэтому я поискал этот файл на всем компьютере и ничего не нашел.

Я использую Python 3.7.3 на 64 -бит Windows. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 07 августа 2020

Вы можете использовать Extension в вашем файле setup.py, например:

# setup.py

from setuptools import setup, Extension
from Cython.Build import cythonize

extensions = [Extension('helloworld', ["helloworld.pyx"])]

setup(ext_modules = cythonize(extensions))

Затем снова запустите python setup.py build_ext --inplace, и ошибка должна исчезнуть, т.е. модуль должен быть найден.

...