Bündelung von Datendateien mit PyInstaller 2.1 und MEIPASS error --onefile

DieseFrage wurde bereits gefragt und ich kann meinen PyInstaller scheinbar nicht richtig zum Laufen bringen. Ich habe den folgenden Code in meiner Datei "mainscript.py" aufgerufen:

def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    try:
        # PyInstaller creates a temp folder and stores path in _MEIPASS
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)

Wenn ich die py-Datei (innerhalb von IDLE) ausführe, läuft meine App einwandfrei und lädt alle Datendateien. Wenn ich es jedoch mit PyInstaller 2.1 (One-File-Methode) bündle, wird nach dem Erstellen der Exe-Datei der folgende Fehler angezeigt:

Traceback (most recent call last):
File "<string>", line 37, in <module>
WindowsError: [Error 3] The system cannot find the path   
specified: 'C:\\Users\\Me\\AppData\\Local\\Temp\\_MEI188722\\eggs/*.*'

Hat jemand eine Idee, wo ich falsch gelaufen bin? Vielen Dank!

** EDIT **

Hier ist genau das, was ich tun möchte.

Mein Hauptskript hat ein Setup (Import), das wie folgt aussieht. Grundsätzlich möchte ich Matplotlib, Basiskarte und Ressourcenpfad enthalten:

import os,sys
import matplotlib
matplotlib.use('WX')
import wx
from matplotlib.backends.backend_wx import FigureCanvasWx as FigureCanvas
from matplotlib.backends.backend_wx import NavigationToolbar2Wx
from mpl_toolkits.basemap import Basemap
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
import Calculate_Distance # A personal py file of mine

def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    try:
        # PyInstaller creates a temp folder and stores path in _MEIPASS
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)

bmap=wx.Bitmap(resource_path('test_image.png'))

print 'hello'

Ich benutze PyInstaller 2.1. Ich benutze auch Python 2.7.5 (32 Bit). Mein Betriebssystem ist Windows 8 (64bit). Meine Matplotlib ist 1.3.0 und die Grundkarte ist 1.0.6. Wxpython ist 2.8.12.1 (Unicode).

Ich gehe zum Befehl und mache:> pyinstaller myscript.py. Dies erzeugt meine .spec-Datei, die ich leicht bearbeite. Unten ist meine bearbeitete Spezifikationsdatei:

data_files = [('Calculate_Distance.py', 'C:\\Users\\Me\\Documents\\MyFolder\\Calculate_Distance.py',
              'DATA'), ('test_image.png', 'C:\\Users\\Me\\Documents\\MyFolder\\test_image.png',
              'DATA')]

includes = []
excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
            'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl',
            'Tkconstants', 'Tkinter']
packages = []
dll_excludes = []
dll_includes = []

a = Analysis(['myscript.py'],
             pathex=['C:\\Users\\Me\\Documents\\MyFolder','C:\\Python27\\Lib\\site-packages\\mpl_toolkits\\basemap\\*'],
             hiddenimports=[],
             hookspath=None,
             runtime_hooks=None)

pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries - dll_excludes + dll_includes + data_files,          
          name='MyApplication.exe',
          debug=False,
          strip=None,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=None,
               upx=True,
               name='MyApplication')  

Ich möchte, dass dies eine ausführbare Datei ist, daher sollten die Datendateien in die ausführbare Datei gepackt werden. Bei anderen Pyinstallern hatte ich normalerweise keine Probleme mit dem MEIPASS. Aufgrund von Matplotlib und Basemap muss ich jedoch 2.1 verwenden. Wenn jemand diese exe perfekt bauen kann - kannst du mir bitte sagen, was ich einstellen muss? Vielen Dank!

****BEARBEITEN****

Wenn jemand herausfinden kann, wie man das mit py2exe macht, wäre das auch großartig. Jede Möglichkeit, dies in eine einzelne ausführbare Datei umzuwandeln, wäre es wert!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage