ImportError: Нет модуля с именем typedefs

Я пытаюсь создать отдельную программу с помощью pyinstaller. В этом процессе я сталкиваюсь со следующим сообщением об ошибке:

`Traceback (most recent call last):
File "<string>", line 13, in <module>
File "/opt/local/anaconda/lib/python2.7/site-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
File "/home/russellb/pyFiles/dist/build/tt/out00-PYZ.pyz/sklearn.neighbors", line 6, in <module>
File "/opt/local/anaconda/lib/python2.7/site-packages/PyInstaller/loader/pyi_importers.py", line 409, in load_module
    module = imp.load_module(fullname, fp, filename, self._c_ext_tuple)
File "dist_metrics.pxd", line 48, in init sklearn.neighbors.ball_tree (sklearn/neighbors/ball_tree.c:34295)
File "/opt/local/anaconda/lib/python2.7/site-packages/PyInstaller/loader/pyi_importers.py", line 409, in load_module
    module = imp.load_module(fullname, fp, filename, self._c_ext_tuple)
File "dist_metrics.pyx", line 52, in init sklearn.neighbors.dist_metrics (sklearn/neighbors/dist_metrics.c:25494)
  ImportError: No module named typedefs`

Какие-либо предложения?

В качестве продолжения:

Мне удалось импортировать typedef и избавиться от вышеуказанной проблемы. Теперь я сталкиваюсь со следующим сообщением об ошибке во время выполнения.

Traceback (most recent call last): File "<string>", line 14, in <module> File "/opt/local/anaconda/lib/python2.7/site-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module exec(bytecode, module.__dict__) File "/home/russellb/pyFiles/dist/build/tt/out00-PYZ.pyz/sklearn.linear_model", line 21, in <module> File "/opt/local/anaconda/lib/python2.7/site-packages/PyInstaller/loader/pyi_importers.py", line 409, in load_module module = imp.load_module(fullname, fp, filename, self._c_ext_tuple) File "weight_vector.pxd", line 10, in init sklearn.linear_model.sgd_fast (sklearn/linear_model/sgd_fast.c:9464) ImportError: No module named weight_vector

Однако я не смог найти ни одного модуля с именем weight_vector в иерархии каталогов sklearn в указанном месте.

Любые идеи и предложения?

Большое спасибо,


person Bussller    schedule 12.03.2015    source источник
comment
Ваша трассировка не читается, есть ли причина, по которой вы откатили редактирование?   -  person zehnpaard    schedule 12.03.2015
comment
честно говоря, я не знаю, как его отредактировать, чтобы он был читабельным. Извинения   -  person Bussller    schedule 12.03.2015
comment
Эта ошибка была сгенерирована, когда я попытался запустить сгенерированный исполняемый файл. pyinstaller генерирует исполняемый файл без каких-либо проблем, за исключением нескольких предупреждений, таких как пересборка out00-PKG.toc, потому что он отсутствует   -  person Bussller    schedule 12.03.2015
comment
Это вся трассировка? Похоже, что может не хватать последней строки   -  person zehnpaard    schedule 12.03.2015
comment
@zehnpaard: теперь это вся трассировка. Последняя строчка отсутствовала. Спасибо :)   -  person Bussller    schedule 12.03.2015
comment
@Zulu: Спасибо за ваши добрые усилия. Я надеюсь, что это фрагмент кода, а не образец кода. Не стесняйтесь поправлять меня, если я ошибаюсь.   -  person Bussller    schedule 12.03.2015
comment
Взгляните на это сообщение SO и документы PyInstaller   -  person zehnpaard    schedule 13.03.2015
comment
Спасибо @zehnpaad. Позвольте мне попробовать и опубликовать результаты.   -  person Bussller    schedule 13.03.2015
comment
@zehnpaard: Спасибо, по ссылке есть ключ к этой проблеме, и проблема решена.   -  person Bussller    schedule 10.03.2016


Ответы (2)


Вы можете добавить --hidden-import=modulename в свой скрипт pyinstaller. Он импортирует этот модуль и привязывается.

person Yogesh    schedule 17.01.2017
comment
Это помогло! SkLearn вызвал отсутствующие 3 модуля в моем приложении на основе Keras. Предоставление их всех явным образом решило проблему: pyinstaller -y --hidden-import sklearn.neighbors.typedefs --hidden-import sklearn.neighbors.quad_tree --hidden-import sklearn.tree._utils ‹myapp.py› - person Valentin Heinitz; 12.08.2019

Я использовал инструмент auto-py-to-exe. Это инструмент с графическим интерфейсом, который вызывает pyinstaller внутри. В дополнительных параметрах я добавил --hidden-import все недостающие модули. В командной строке я увидел все модули как параметры:

--hidden-import sklearn.neighbors.typedefs --hidden-import sklearn.neighbors.quad_tree --hidden-import sklearn.tree._utils

введите здесь описание изображения

person Valentin Heinitz    schedule 12.08.2019