Я столкнулся с той же проблемой. Я варил вниз к простому сценарию, как этот hello.py:
import pandas
print "hello world, pandas was imported successfully!"
Чтобы получить панды импортировать во время выполнения правильно я должен был изменить Hello.spec к следующему:
# -*- mode: python -*-
block_cipher = None
def get_pandas_path():
import pandas
pandas_path = pandas.__path__[0]
return pandas_path
a = Analysis(['Hello.py'],
pathex=['C:\\ScriptsThatRequirePandas'],
binaries=None,
datas=None,
hiddenimports=[],
hookspath=None,
runtime_hooks=None,
excludes=None,
win_no_prefer_redirects=None,
win_private_assemblies=None,
cipher=block_cipher)
dict_tree = Tree(get_pandas_path(), prefix='pandas', excludes=["*.pyc"])
a.datas += dict_tree
a.binaries = filter(lambda x: 'pandas' not in x[0], a.binaries)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='Hello',
debug=False,
strip=None,
upx=True,
console=True)
scoll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=None,
upx=True,
name='Hello')
Затем я побежал:
$pyinstaller Hello.spec --onefile
из командной строки и получил сообщение «привет мир», которое я ожидал. Я до сих пор не совсем понимаю, почему это необходимо. У меня есть обычная сборка панд, которая подключена к библиотекам MKL, но мне непонятно, что это вызывает провал выполнения.
Это похоже на ответ здесь: Pyinstaller not correclty importing pycripto... sometimes
Это сработало для меня, хотя мне не пришлось переустанавливать Pyinstaller. – kaisquared