Opened 16 years ago
Closed 16 years ago
#3758 closed defect (fixed)
Broken egg install, conflict with tracusermanagerplugin 0.3
Reported by: | Michał Małecki | Owned by: | Jeff Hammel |
---|---|---|---|
Priority: | highest | Component: | AutocompleteUsersPlugin |
Severity: | normal | Keywords: | |
Cc: | Trac Release: | 0.11 |
Description
After standard egg installation, JS and CSS files are not present.
While building an egg with setup bdist_egg
, html
calatogue is not included within the egg - thus plugin does not work. The appropriate directory in .egg-cache
dir in trac env does not get created.
After copying html
directory manually to Lib/site-packages/trac/
in python installation, it appears to work, but just till the restart of the httpd server.
After restart it starts to conflict with requests to graphics and CSS from tracusermanagerplugin , every http request resulting in http 500 message with following error:
Trac detected an internal error: KeyError: 'autocompleteusers\\htdocs'
and following traceback:
- File "C:\Python25\Lib\site-packages\trac\web\main.py", line 423, in _dispatch_request
Code fragment:418. try: 419. if not env and env_error: 420. raise HTTPInternalError(env_error) 421. try: 422. dispatcher = RequestDispatcher(env) 423. dispatcher.dispatch(req) 424. except RequestDone: 425. pass 426. resp = req._response or [] 427. 428. 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 0x02ACE650>
- e KeyError('autocompleteusers
htdocs',) - env <trac.env.Environment object at 0x0252B5B0>
- env_error None
- exc_info (<type 'exceptions.KeyError'>, KeyError('autocompleteusers
htdocs',), ... - filename 'C:
Python25
Lib
site-packages
trac
web
main.py' - frames [{'function': '_dispatch_request', 'lines_before': [u' try:', u' ...
- has_admin True
- line u' dispatcher.dispatch(req)'
- lineno 422
- message u"KeyError: 'autocompleteusers
htdocs'" - req <Request "GET u'/chrome/tracusermanager/img/no_picture.png'">
- resp []
- tb <traceback object at 0x02D698F0>
- tb_hide None
- traceback 'Traceback (most recent call last):\n File ...
- File "C:\Python25\Lib\site-packages\trac\web\main.py", line 197, in dispatch
Code fragment:192. req.args.get('__FORM_TOKEN') != req.form_token: 193. raise HTTPBadRequest('Missing or invalid form token. ' 194. 'Do you have cookies enabled?') 195. 196. # Process the request and render the template 197. resp = chosen_handler.process_request(req) 198. if resp: 199. if len(resp) == 2: # Clearsilver 200. chrome.populate_hdf(req) 201. template, content_type = \ 202. self._post_process_request(req, *resp)
Local variables:- Name Value
- chosen_handler <trac.web.chrome.Chrome object at 0x02ABF070>
- chrome <trac.web.chrome.Chrome object at 0x02ABF070>
- err (<type 'exceptions.KeyError'>, KeyError('autocompleteusers
htdocs',), ... - handler <trac.web.chrome.Chrome object at 0x02ABF070>
- req <Request "GET u'/chrome/tracusermanager/img/no_picture.png'">
- self <trac.web.main.RequestDispatcher object at 0x02ACE650>
- File "C:\Python25\Lib\site-packages\trac\web\chrome.py", line 364, in process_request
Code fragment:359. filename = req.args['filename'] 360. 361. dirs = [] 362. for provider in self.template_providers: 363. for dir in [os.path.normpath(dir[1]) for dir 364. in provider.get_htdocs_dirs() if dir[0] == prefix]: 365. dirs.append(dir) 366. path = os.path.normpath(os.path.join(dir, filename)) 367. assert os.path.commonprefix([dir, path]) == dir 368. if os.path.isfile(path): 369. req.send_file(path, get_mimetype(path))
Local variables:- Name Value
- _[1] []
- dir ('customfieldadmin', ...
- dirs []
- filename u'img/no_picture.png'
- prefix u'tracusermanager'
- provider <autocompleteusers.autocompleteusers.AutocompleteUsers object at ...
- req <Request "GET u'/chrome/tracusermanager/img/no_picture.png'">
- self <trac.web.chrome.Chrome object at 0x02ABF070>
- File "build\bdist.win32\egg\autocompleteusers\autocompleteusers.py", line 88, in get_htdocs_dirs
Local variables:
- Name Value
- self <autocompleteusers.autocompleteusers.AutocompleteUsers object at ...
- File "C:\Python25\Lib\site-packages\pkg_resources.py", line 841, in resource_filename
Code fragment:836. ) 837. 838. def resource_filename(self, package_or_requirement, resource_name): 839. """Return a true filesystem path for specified resource""" 840. return get_provider(package_or_requirement).get_resource_filename( 841. self, resource_name 842. ) 843. 844. def resource_stream(self, package_or_requirement, resource_name): 845. """Return a readable file-like object for specified resource""" 846. return get_provider(package_or_requirement).get_resource_stream(
Local variables:- Name Value
- package_or_requirement 'autocompleteusers.autocompleteusers'
- resource_name 'htdocs'
- self <pkg_resources.ResourceManager instance at 0x024C1328>
- File "C:\Python25\Lib\site-packages\pkg_resources.py", line 1311, in get_resource_filename
Code fragment:1306. zip_path = self._resource_to_zip(resource_name) 1307. eagers = self._get_eager_resources() 1308. if '/'.join(self._parts(zip_path)) in eagers: 1309. for name in eagers: 1310. self._extract_resource(manager, self._eager_to_zip(name)) 1311. return self._extract_resource(manager, zip_path) 1312. 1313. def _extract_resource(self, manager, zip_path): 1314. 1315. if zip_path in self._index(): 1316. for name in self._index()[zip_path]:
Local variables:- Name Value
- eagers []
- manager <pkg_resources.ResourceManager instance at 0x024C1328>
- resource_name 'htdocs'
- self <pkg_resources.ZipProvider instance at 0x02E560A8>
- zip_path 'autocompleteusers
htdocs'
- File "C:\Python25\Lib\site-packages\pkg_resources.py", line 1322, in _extract_resource
Code fragment:1317. last = self._extract_resource( 1318. manager, os.path.join(zip_path, name) 1319. ) 1320. return os.path.dirname(last) # return the extracted directory name 1321. 1322. zip_stat = self.zipinfo[zip_path] 1323. t,d,size = zip_stat[5], zip_stat[6], zip_stat[3] 1324. date_time = ( 1325. (d>>9)+1980, (d>>5)&0xF, d&0x1F, # ymd 1326. (t&0xFFFF)>>11, (t>>5)&0x3F, (t&0x1F) * 2, 0, 0, -1 # hms, etc. 1327. )
Local variables:- Name Value
- manager <pkg_resources.ResourceManager instance at 0x024C1328>
- self <pkg_resources.ZipProvider instance at 0x02E560A8>
- zip_path 'autocompleteusers
htdocs'
We suspect that the problem is in line no.4 in a traceback - the refference to a nonexistent dirctory from build directory of an egg distribution.
Attachments (0)
Change History (4)
comment:1 Changed 16 years ago by
Priority: | normal → highest |
---|
comment:2 Changed 16 years ago by
comment:3 Changed 16 years ago by
This can be fixed with the following patch:
--- setup.py.orig 2008-10-23 15:00:54.000000000 -0500 +++ setup.py 2008-10-23 14:56:19.000000000 -0500 @@ -12,7 +12,7 @@ setup(name='AutocompleteUsers', license="", packages=find_packages(exclude=['ez_setup', 'examples', 'tests*']), include_package_data=True, - package_data={'autocompleteusers': ['htdocs/*']}, + package_data={'autocompleteusers': ['htdocs/css/*, htdocs/js/*']}, zip_safe=False, entry_points = """ [trac.plugins]
comment:4 Changed 16 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
r4390 should at least include the js and css (i hope)