Łączenie plików danych z błędem PyInstaller 2.1 i błędem MEIPASS - plik pojedynczy

Topytanie zostałem zapytany wcześniej i nie wydaje mi się, aby mój PyInstaller działał poprawnie. W moim pliku mainscript.py wywołałem następujący kod:

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)

Gdy uruchamiam plik py (w IDLE), moja aplikacja działa doskonale i ładuje wszystkie pliki danych. Jednakże, gdy dołączę go do PyInstaller 2.1 (jedna metoda pliku), po kompilacjach exe pojawia się następujący błąd:

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/*.*'

Czy ktoś ma jakiś pomysł, gdzie poszedłem źle? Dzięki!

** EDYTOWAĆ **

Oto, co chcę zrobić.

Mój główny skrypt ma konfigurację (import), która wygląda jak poniżej. Zasadniczo chcę mieć w sobie Matplotlib, mapę bazową i ścieżkę zasobów:

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'

Używam PyInstaller 2.1. Używam także Pythona 2.7.5 (32-bitowego). Mój system operacyjny to Windows 8 (64-bitowy). Mój Matplotlib to 1.3.0, a mapa bazowa to 1.0.6. Wxpython to 2.8.12.1 (Unicode).

Idę do dowodzenia i robię:> pyinstaller myscript.py. To generuje mój plik .spec, który nieznacznie edytuję. Poniżej znajduje się mój edytowany plik specyfikacji:

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')  

Chcę, aby był to plik wykonywalny z jednym plikiem, aby pliki danych były spakowane w pliku wykonywalnym. W innych instalatorach zwykle nie miałem problemów z MEIPASS. Jednak muszę użyć 2.1 z powodu Matplotlib i Basemap. Jeśli ktoś może doskonale zbudować ten exe - czy możesz mi powiedzieć, co muszę dostosować? Dzięki!

****EDYTOWAĆ****

Jeśli ktoś może dowiedzieć się, jak to zrobić za pomocą py2exe - to byłoby również świetne. Jakikolwiek sposób, w jaki mogę dostać to do jednego pliku wykonywalnego, byłby tego wart!

questionAnswers(1)

yourAnswerToTheQuestion