यह question पहले से पूछा गया है और मुझे लगता है कि मुझे अपने PyInstaller को सही तरीके से काम करने के लिए प्रतीत नहीं होता है। मैं अपने mainscript.py फ़ाइल में निम्न कोड लागू किया है:PyInstaller 2.1 और MEIPASS त्रुटि के साथ डेटा फ़ाइलों को बंडल करना --onefile
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)
जब मैं py फ़ाइल (निष्क्रिय अंदर), चलाने के लिए, मेरे ऐप पूरी तरह से और भार डेटा फ़ाइलों के सभी चलाता है। हालांकि, जब मैं इसे PyInstaller 2.1 के साथ बंडल (एक फाइल विधि) मैं exe के बाद निम्न त्रुटि बनाता हो:
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/*.*'
किसी को भी किसी भी विचार है जहाँ मैं गलत हो गया है? धन्यवाद!
** संपादित करें **
यहाँ वास्तव में क्या मैं क्या करना चाहते है।
मेरी मुख्य स्क्रिप्ट में एक सेटअप (आयात) है जो नीचे जैसा दिखता है। अनिवार्य रूप से मैं इसे में matplotlib, Basemap, और संसाधन पथ सब करने में सक्षम होना चाहता हूँ:
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'
मैं PyInstaller 2.1 उपयोग कर रहा हूँ। मैं पायथन 2.7.5 (32 बिट) का भी उपयोग कर रहा हूं। मेरा ओएस विंडोज 8 (64 बिट) है। मेरा Matplotlib 1.3.0 है और Basemap 1.0.6 है। Wxpython 2.8.12.1 (यूनिकोड) है।
मैं कमांड पर जाता हूं और करता हूं: > pyinstaller myscript.py
। यह मेरी .spec फ़ाइल जेनरेट करता है जिसे मैं थोड़ा संपादित करता हूं। मैं इतना डेटा फ़ाइलों निष्पादन के भीतर पैक किया जाना चाहिए इसे एक एकल फ़ाइल निष्पादन योग्य होना चाहते हैं
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')
: नीचे मेरी संपादित कल्पना फ़ाइल है। अन्य pyinstallers पर मुझे आमतौर पर MEIPASS के साथ कोई समस्या नहीं है। हालांकि, मुझे Matplotlib और Basemap की वजह से 2.1 का उपयोग करने की आवश्यकता है। अगर कोई इस exe पूरी तरह से निर्माण कर सकते हैं - क्या आप कृपया मुझे बता सकते हैं कि मुझे समायोजित करने की क्या ज़रूरत है? धन्यवाद!
**** संपादित ****
किसी को भी यह पता लगाने कर सकते हैं कैसे py2exe के साथ ऐसा करना - वह भी बहुत अच्छा होगा। किसी भी तरह से मैं इसे एक निष्पादन योग्य में प्राप्त कर सकता हूं, यह इसके लायक होगा!
मुझे यकीन नहीं है कि यह समस्या है, लेकिन पाइइंस्टॉलर 2.1 के पीपीआई संस्करण में बग का एक गुच्छा है, तो https://github.com/pyinstaller पर गिट संस्करण का उपयोग करने का प्रयास करें। –
मैंने pyinstaller.org के सीधे एक को डाउनलोड किया - क्या यह इसे पीपीआई से प्राप्त करने जैसा ही है? – mcfly
मुझे उम्मीद है। वे 2.1 रिलीज संस्करण दोनों हैं। –