Modify ↓
Opened 17 years ago
Closed 17 years ago
#4412 closed defect (worksforme)
ZipImportError: bad local file header?
| Reported by: | Matt Callaghan | Owned by: | Martin Scharrer |
|---|---|---|---|
| Priority: | normal | Component: | WatchlistPlugin |
| Severity: | blocker | Keywords: | |
| Cc: | Martin Scharrer | Trac Release: | 0.11 |
Description
As per #4275 I was trying to test the fix provided by martin_s.
After running
sudo easy_install http://trac-hacks.org/svn/watchlistplugin/0.11
Trac gives the following now when we view the "plugins" tab in the Admin page:
Trac detected an internal error: ZipImportError: bad local file header in /usr/lib/python2.5/site-packages/TracWatchlistPlugin-0.1-py2.5.egg
Python Traceback
Most recent call last:
* File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/web/main.py", line 432, in _dispatch_request
Code fragment:
427. try:
428. if not env and env_error:
429. raise HTTPInternalError(env_error)
430. try:
431. dispatcher = RequestDispatcher(env)
432. dispatcher.dispatch(req)
433. except RequestDone:
434. pass
435. resp = req._response or []
436.
437. except HTTPException, e:
Local variables:
Name Value
after [u' except RequestDone:', u' pass', u' resp = ...
before [u' try:', u' if not env and env_error:', u' raise ...
dispatcher <trac.web.main.RequestDispatcher object at 0xb51f24c>
e ZipImportError('bad local file header in ...
env <trac.env.Environment object at 0xb12df4c>
env_error None
exc_info (<class 'zipimport.ZipImportError'>, ZipImportError('bad local file header ...
filename '/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/web/main.py' ...
frames [{'function': '_dispatch_request', 'lines_before': [u' try:', u' ...
has_admin True
line u' dispatcher.dispatch(req)'
lineno 431
message u'ZipImportError: bad local file header in ...
req <Request "GET u'/admin/general/plugin'">
resp []
tb <traceback object at 0xb63111c>
tb_hide None
traceback 'Traceback (most recent call last):\n File ...
* File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/web/main.py", line 204, in dispatch
Code fragment:
199. req.args.get('__FORM_TOKEN') != req.form_token:
200. raise HTTPBadRequest('Missing or invalid form token. '
201. 'Do you have cookies enabled?')
202.
203. # Process the request and render the template
204. resp = chosen_handler.process_request(req)
205. if resp:
206. if len(resp) == 2: # Clearsilver
207. chrome.populate_hdf(req)
208. template, content_type = \
209. self._post_process_request(req, *resp)
Local variables:
Name Value
chosen_handler <trac.admin.web_ui.AdminModule object at 0xb51f6ac>
chrome <trac.web.chrome.Chrome object at 0xb648d8c>
err (<class 'zipimport.ZipImportError'>, ZipImportError('bad local file header ...
handler <trac.admin.web_ui.AdminModule object at 0xb51f6ac>
req <Request "GET u'/admin/general/plugin'">
self <trac.web.main.RequestDispatcher object at 0xb51f24c>
* File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/admin/web_ui.py", line 113, in process_request
Code fragment:
108. if not provider:
109. raise HTTPNotFound(_('Unknown administration panel'))
110.
111. if hasattr(provider, 'render_admin_panel'):
112. template, data = provider.render_admin_panel(req, cat_id, panel_id,
113. path_info)
114.
115. else: # support for legacy WebAdmin panels
116. data = {}
117. cstmpl, ct = provider.process_admin_request(req, cat_id, panel_id,
118. path_info)
Local variables:
Name Value
_panel_order <function _panel_order at 0xb690f7c>
cat_id u'general'
panel_id u'plugin'
panels [('general', 'General', 'basics', 'Basic Settings'), ('general', ...
path_info None
provider <trac.admin.web_ui.PluginAdminPanel object at 0xb6aeccc>
providers {('tracini', 'inherit'): <iniadmin.iniadmin.IniAdminPlugin object at ...
req <Request "GET u'/admin/general/plugin'">
self <trac.admin.web_ui.AdminModule object at 0xb51f6ac>
* File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/admin/web_ui.py", line 400, in render_admin_panel
Code fragment:
395. anchor = ''
396. if req.args.has_key('plugin'):
397. anchor = '#no%d' % (int(req.args.get('plugin')) + 1)
398. req.redirect(req.href.admin(cat, page) + anchor)
399.
400. return self._render_view(req)
401.
402. # Internal methods
403.
404. def _do_install(self, req):
405. """Install a plugin."""
Local variables:
Name Value
cat u'general'
page u'plugin'
path_info None
req <Request "GET u'/admin/general/plugin'">
self <trac.admin.web_ui.PluginAdminPanel object at 0xb6aeccc>
* File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/admin/web_ui.py", line 504, in _render_view
Code fragment:
499. readonly = True
500. if plugin_filename and os.access(dist.location,
501. os.F_OK + os.W_OK):
502. readonly = False
503. # retrieve plugin metadata
504. info = get_pkginfo(dist)
505. if not info:
506. info = {'summary': description}
507. for k in ('author author_email home_page url license trac'
508. .split()):
509. v = getattr(module, k, '')
Local variables:
Name Value
ComponentMeta <class 'trac.core.ComponentMeta'>
component <class 'tracwatchlist.db.WatchlistDB'>
description u'DB handler class for Trac WatchlistPlugin.'
dist TracWatchlistPlugin 0.1 ...
info {'description': 'UNKNOWN', 'license': 'GPLv2+', 'author': 'Bernhard ...
k 'trac'
module <module 'tracwatchlist.db' from ...
plugin_filename None
plugins {'BreadCrumbsNavPlugin': {'info': {'description': 'UNKNOWN', 'license': ...
plugins_dir '/srv/trac/plugins'
readonly True
req <Request "GET u'/admin/general/plugin'">
self <trac.admin.web_ui.PluginAdminPanel object at 0xb6aeccc>
v ''
version '0.1.dev-r4768'
* File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/util/__init__.py", line 241, in get_pkginfo
Code fragment:
236. 'description', 'version')
237. info = {}
238. def normalize(attr):
239. return attr.lower().replace('-', '_')
240. try:
241. pkginfo = email.message_from_string(dist.get_metadata('PKG-INFO'))
242. for attr in [key for key in attrs if key in pkginfo]:
243. info[normalize(attr)] = pkginfo[attr]
244. except IOError, e:
245. err = 'Failed to read PKG-INFO file for %s: %s' % (dist, e)
246. for attr in attrs:
Local variables:
Name Value
attrs ('author', 'author-email', 'license', 'home-page', 'summary', ...
dist TracWatchlistPlugin 0.1 ...
email <module 'email' from '/usr/lib/python2.5/email/__init__.pyc'>
info {}
normalize <function normalize at 0xb69072c>
types <module 'types' from '/usr/lib/python2.5/types.pyc'>
* File "/usr/lib/python2.5/site-packages/pkg_resources.py", line 1137, in get_metadata
Code fragment:
1132. return self.egg_info and self._has(self._fn(self.egg_info,name))
1133.
1134. def get_metadata(self, name):
1135. if not self.egg_info:
1136. return ""
1137. return self._get(self._fn(self.egg_info,name))
1138.
1139. def get_metadata_lines(self, name):
1140. return yield_lines(self.get_metadata(name))
1141.
1142. def resource_isdir(self,resource_name):
Local variables:
Name Value
name 'PKG-INFO'
self <pkg_resources.EggMetadata instance at 0xb6c25ac>
* File "/usr/lib/python2.5/site-packages/pkg_resources.py", line 1195, in _get
Code fragment:
1190. def _fn(self, base, resource_name):
1191. return os.path.join(base, *resource_name.split('/'))
1192.
1193. def _get(self, path):
1194. if hasattr(self.loader, 'get_data'):
1195. return self.loader.get_data(path)
1196. raise NotImplementedError(
1197. "Can't perform this operation for loaders without 'get_data()'"
1198. )
1199.
1200. register_loader_type(object, NullProvider)
Local variables:
Name Value
path '/usr/lib/python2.5/site-packages/TracWatchlistPlugin-0.1-py2.5.egg/EGG-INF ...
self <pkg_resources.EggMetadata instance at 0xb6c25ac>
File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/web/main.py", line 432, in _dispatch_request
dispatcher.dispatch(req)
File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/web/main.py", line 204, in dispatch
resp = chosen_handler.process_request(req)
File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/admin/web_ui.py", line 113, in process_request
path_info)
File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/admin/web_ui.py", line 400, in render_admin_panel
return self._render_view(req)
File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/admin/web_ui.py", line 504, in _render_view
info = get_pkginfo(dist)
File "/usr/lib/python2.5/site-packages/Trac-0.11.2.1-py2.5.egg/trac/util/__init__.py", line 241, in get_pkginfo
pkginfo = email.message_from_string(dist.get_metadata('PKG-INFO'))
File "/usr/lib/python2.5/site-packages/pkg_resources.py", line 1137, in get_metadata
return self._get(self._fn(self.egg_info,name))
File "/usr/lib/python2.5/site-packages/pkg_resources.py", line 1195, in _get
return self.loader.get_data(path)
Trac: 0.11.2.1 Python: 2.5.2 (r252:60911, Jul 31 2008, 17:44:49) [GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] setuptools: 0.6c8 SQLite: 3.4.2 pysqlite: 2.3.2 Genshi: 0.6dev-r960 Subversion: 1.4.6 (r28521)
Attachments (0)
Change History (2)
comment:1 Changed 17 years ago by
| Status: | new → assigned |
|---|
comment:2 Changed 17 years ago by
| Resolution: | → worksforme |
|---|---|
| Status: | assigned → closed |
No new feedback after two weeks. I'm closing this defect as 'worksforme'. Feel free to reopen it when you are able to provide feedback.
Note: See
TracTickets for help on using
tickets.



This works for me. Sounds more like a local installation issue. Please check if the EGG file is a valid ZIP file, e.g. using:
Also you can try removing the EGG file and run the
easy_installcommand again. Please post the output of it if the error occurs again.