2013-09-13 3 views
3

У меня есть скрипт сборки для одного из моих установленных приложений Python, в котором используется Pyinstaller. Этот скрипт работает отлично уже более года. Тогда сегодня, я добавил к одному из исходных файлов для этого приложения линииПри попытке создать исполняемый файл Python с помощью Pyinstaller не удается найти существующий модуль scipy

import scipy.stats 

, потому что я хочу использовать scipy.stats.linregress. Теперь это приводит к тому, сценарий сборки к аварийному с TRACEBACK долго ошибок (по-видимому, возвращаясь через последовательность модулей, которые импортируют друг от друга) заканчивая

File "C:\Users\462974\Documents\Local Sandbox\fof\TRUNK\programs\CDFParsing\build\pyi.win32\CDFGUI\outPYZ1.pyz/scipy.sparse.csgraph", line 148, in <module> 
    File "C:\Python27\pyinstaller-1.5\iu.py", line 436, in importHook 
    mod = _self_doimport(nm, ctx, fqname) 
    File "C:\Python27\pyinstaller-1.5\iu.py", line 495, in doimport 
    mod = importfunc(nm) 
    File "C:\Python27\pyinstaller-1.5\iu.py", line 297, in getmod 
    mod = owner.getmod(nm) 
    File "C:\Python27\pyinstaller-1.5\archive.py", line 468, in getmod 
    return iu.DirOwner.getmod(self, self.prefix+'.'+nm) 
    File "C:\Python27\pyinstaller-1.5\iu.py", line 109, in getmod 
    mod = imp.load_module(nm, fp, attempt, (ext, mode, typ)) 
    File "_shortest_path.pyx", line 18, in init scipy.sparse.csgraph._shortest_path (scipy\sparse\csgraph\_shortest_path.c:14224) 
    File "C:\Python27\pyinstaller-1.5\iu.py", line 455, in importHook 
    raise ImportError, "No module named %s" % fqname 
ImportError: No module named scipy.sparse.csgraph._validation 

Это озадачивает, потому что модуль находится в C: \ python27 \ Lib \ site-packages \ scipy \ sparse \ csgraph_validation.py очень много. Почему добавление scipy в мою сборку нарушает его (импорт numpy работает просто отлично), может ли он не найти его?

+0

Я не совсем уверен, но только убедитесь, что ваш сайт-пакеты \ SciPy имеет '__init__. py' в каждом пакете. Кроме этого, если он находится в ваших пакетах сайтов, он действительно должен его найти. – Shashank

+0

В каталогах scipy, sparse и csgraph есть файлы __init__.py. – dpitch40

ответ

1

Не совсем уверен, почему, но в том числе следующее определение в моем коде после того, как оператор импорта зафиксировал его:

def fix_dependencies(): 
    from scipy.sparse.csgraph import _validation 
Смежные вопросы