2015-12-07 9 views
0

Я пытаюсь использовать py2exe для создания исполняемого файла на 64-разрядной Windows 7 с Anaconda (Python 3.4) для моего проекта, который зависит от большого количества библиотек. Некоторые из более сложных включают vispy (pyopengl), PyQt4, numba и scipy. Я пытался выполнить различные ошибки, чтобы попытаться получить рабочий исполняемый файл, но попал в дорожный блок без четкого пути вперед. В настоящее время py2exe команда завершается, но я получаю следующее сообщение об ошибке при запуске EXE-файла:py2exe «Нет модуля с именем« сайт »из Anaconda

... 
    from numba import jit 
    File "C:\Anaconda3\envs\sift_py2exe\lib\site-packages\numba\__init__.py", line 
13, in <module> 
    from .pycc.decorators import export, exportmany 
    File "C:\Anaconda3\envs\sift_py2exe\lib\site-packages\numba\pycc\__init__.py", 
line 12, in <module> 
    from .cc import CC 
    File "C:\Anaconda3\envs\sift_py2exe\lib\site-packages\numba\pycc\cc.py", line 
4, in <module> 
    from distutils.command import build_ext 
    File "C:\Anaconda3\envs\sift_py2exe\lib\distutils\command\build_ext.py", line 
17, in <module> 
    from site import USER_BASE 
ImportError: No module named 'site' 

Я был в состоянии сделать небольшое временное решение, добавив C:\Anaconda3\envs\sift_py2exe\Lib каталог в sys.path в моем основном сценарии, но я сомневаюсь, что это будет чтобы помочь мне намного позже. Не говоря уже о том, что после этого у меня были более скудные DLL-проблемы.

Вот соответствующие части моего setup.py:

try: 
    import py2exe 
    from llvmlite.binding.ffi import _lib_dir, _lib_name 
    kwargs["data_files"] = [('.', [os.path.join(_lib_dir, _lib_name), os.path.join(_lib_dir, "MSVCP120.dll"), os.path.join(_lib_dir, "MSVCR120.dll")])] 
    kwargs["console"] = [{ 
     'script': 'cspov/__main__.py', 
     'dest_base': "SIFT", 
     }] 
    kwargs["options"] = {'py2exe': {"includes": ["vispy.app.backends._pyqt4", "PyQt4.QtNetwork"]}} 
except ImportError: 
    print("'py2exe' and/or 'llvmlite' not available") 

я пытался добавить директорию «Lib» в setup.py, а затем в том числе «сайт», но не найти модуль. Есть идеи? Благодарю.

Замечание: Я использую DLL-файлы Microsoft из llvmlite в качестве быстрого обходного пути, потому что я не мог заставить его работать ни в одном из обычных способов.

ответ

0

Это не тот ответ, на который я надеялся, но я смог получить рабочий исполняемый файл, когда переключился на pyinstaller. Все остальные вопросы, которые я видел в отношении моей проблемы, имели похожие «решения».