2013-11-27 3 views
3

окружающей среды: Mac OS X 10.7.5, Xcode 4.2.1, Python 2.7.5, OpenCV 2.4.7, 0.7.3 py2appPython + OpenCV + py2app: numpy.core.multiarray не удалось импортировать

I пытаюсь упаковать простой OpenCV на основе питон скрипт, используя py2app но встроенные приложение падает с ошибкой, которая говорит ImportError: numpy.core.multiarray failed to import

здесь питон скрипт называется demoApp.py

import cv2 
capture = cv2.VideoCapture(0) 
winName = 'eyeDetection' 
cv2.namedWindow(winName) 

# Press esc key to exit 
keyPressed = -1 
while(keyPressed != 27): # ord('esc') is 27 
    unused_retval, img0 = capture.read() 
    img1 = cv2.cvtColor(img0, cv2.COLOR_BGR2GRAY) 

    cv2.imshow(winName, img1) 
    keyPressed = cv2.waitKey(1) 
cv2.destroyAllWindows() 

demoApp.py бежит, как ожидается, когда запущен из среды eclipse + pydev.

создать файл setup.py:

py2applet --make-setup demoApp.py 

, который имеет следующее содержание:

""" 
This is a setup.py script generated by py2applet 

Usage: 
    python setup.py py2app 
""" 

from setuptools import setup 

APP = ['demoApp.py'] 
DATA_FILES = [] 
OPTIONS = {'argv_emulation': True} 

setup(
    app=APP, 
    data_files=DATA_FILES, 
    options={'py2app': OPTIONS}, 
    setup_requires=['py2app'], 
) 

Я тогда построить приложение:

python setup.py py2app 

Запуск приложение вызывает его сбой с вышеупомянутым ImportError.

Я удалил сборки и Dist папки и пытался строить приложение в режиме «Алиас»:

python setup.py py2app -A 

Затем, когда я запустить приложение он работает, как ожидалось. Поэтому я не понимаю, почему автономное приложение не будет работать при построении для распространения.

Пожалуйста, помогите мне разобраться, как бороться с этой проблемой. Кроме того, demoApp.app составляет 50 Мб, как я могу уменьшить его размер?

ответ

1

, хотя я не нашел правильного решения, и эта проблема может быть связана с 64-разрядными задачами вычислимости python27 и 32bit numpy. Быстрая работа была связана с import numpy в сценарии demoApp.py перед импортом cv2.

и после использования PyInstaller вместо py2app файла demoApp.app теперь 6Mb вместо 50Mb: D

хотя приложение генерируется с помощью PyInstaller дали ту же самую проблему без выше обходного пути.

+0

Хотя я не видел эту точную проблему, я могу подтвердить достаточно вопросов, подобных 64-битовому питону, что я даже не использую 64-разрядный питон. Я просто не думаю, что экосистема еще готова, даже в 2016 году –

Смежные вопросы