Opened 16 years ago
Closed 15 years ago
#3572 closed defect (fixed)
AttributeError: 'NoneType' object has no attribute 'applyStylesheet'
Reported by: | scratcher | Owned by: | Filipe Correia |
---|---|---|---|
Priority: | normal | Component: | Page2DocbookPlugin |
Severity: | blocker | Keywords: | |
Cc: | Trac Release: | 0.11 |
Description
Hello!
Trac 0.11 installation under Windows, uTidyLib was taken from this page: http://utidylib.berlios.de/ LibXml2 and LibXSLT were taken from this site: http://users.skynet.be/sbi/libxml-python/
Plugin generates the error: AttributeError: 'NoneType' object has no attribute 'applyStylesheet', see screenshot attached. Thanks!
Attachments (3)
Change History (17)
Changed 16 years ago by
comment:1 follow-ups: 2 3 Changed 16 years ago by
Sounds some of the stylesheet files are not being found. Can you please confirm all of the files were correctly extracted from the egg? Namely, that you have several html and xsl files under c:\trac\plugins\pagetodocbook-0.6.2.egg\pagetodocbook\data\html2db
comment:2 Changed 16 years ago by
In c:\trac\plugins\ I see pagetodocbook-0.6.2.egg (zip archive), directory inside it you mentioned above contains following files: ar01s02.html ar01s03.html ar01s04.html ar01s05.html ar01s06.html ar01s07.html ar01s08.html ar01s09.html ar01s10.html build.xml example.xsl extract-section.xsl extract-toc.xsl html2db.xsl html2db-utils.xsl index.html index.src.html index.xml LICENSE.txt tidy.properties
There is no directories (should they be there?) pagetodocbook-0.6.2.egg\pagetodocbook\data\html2db in c:\Trac\plugins. I've installed .egg via Trac administration panel.
comment:3 Changed 16 years ago by
This is plugins directory structure:
Volume in drive C is System Volume Serial Number is FC5F-E6C4 Directory of C:\Trac\plugins 19.08.2008 13:18 <DIR> . 19.08.2008 13:18 <DIR> .. 01.02.2008 15:59 2 125 autonav.py 29.04.2008 11:16 2 255 autonav.pyc 01.02.2008 17:23 1 375 BackLinks.py 29.04.2008 11:16 1 530 BackLinks.pyc 31.07.2008 17:54 799 check_corr_version.py 31.07.2008 17:54 1 270 check_corr_version.pyc 01.02.2008 14:29 617 Color.py 29.04.2008 11:16 1 091 Color.pyc 26.05.2008 10:04 26 ddts-refs.egg-link 19.05.2008 09:22 23 fieldjuggler.egg-link 10.12.2007 19:52 16 347 graphviz-0.6.9-py2.5.egg 06.08.2008 13:06 5 947 PageToDoc-0.1.5-py2.5.egg 19.08.2008 12:17 53 661 PageToDocbook-0.6.2-py2.5.egg 01.02.2008 14:21 2 994 ParentLinkage.py 29.04.2008 11:16 2 931 ParentLinkage.pyc 14.05.2008 16:20 2 044 priority_field.pyc 14.05.2008 16:19 1 802 priority_field.py_ 19.05.2008 13:29 1 715 sample1.py 19.05.2008 13:29 2 674 sample1.pyc 07.05.2008 10:16 4 878 TracAcronyms-0.1-py2.5.egg 06.05.2008 17:50 21 637 TracDateField-1.0.1-py2.5.egg 28.05.2008 13:17 41 990 TracMasterTickets-2.1.1-py2.5.egg 12.05.2008 18:19 10 409 TracWikiRename-2.1-py2.5.egg 21.01.2008 14:38 28 556 TracXMLRPC-0.1-py2.5.egg 04.06.2008 09:02 30 710 TracXMLRPC-1.0.0-py2.5.egg 04.02.2008 20:17 8 323 WantedPages-0.3-py2.5.egg 27 File(s) 247 729 bytes 2 Dir(s) 1 521 033 216 bytes free
comment:4 follow-up: 6 Changed 16 years ago by
There is no directories (should they be there?)
Yep, they should. Directory structure should be the same as in the subversion repository: http://trac-hacks.org/browser/page2docbookplugin/page2docbook/pagetodocbook
Have you built the egg file yourself or have you downloaded the one in the plugin's wiki page?
comment:5 Changed 16 years ago by
I've tried both: first I've downloaded ready egg from trac-hacks, then I've downloaded zipped source and create egg by myself. Moreover - I've tried this plugin on two different installation of Trac (0.11rc1 and 0.11) - result is the same. Any ideas?
If I understood you correct - it is enough to upload egg via administration panel and it's content must be extracted automatically to plugins directory by Trac?
comment:6 Changed 16 years ago by
After discovering some output from Tracd console:
127.0.0.1 - - [19/Aug/2008 14:06:41] "GET /Trac/wiki/WikiStart?format=docbook HT TP/1.1" 500 - compilation error: element import xsl:import : invalid URI reference C:\Documents and Settings\pb3b0255\Applicatio n Data\Python-Eggs\pagetodocbook-0.6.2-py2.5.egg-tmp\pagetodocbook\data\headings Normalizer\headingsNormalizer.xsl 127.0.0.1 - - [19/Aug/2008 14:07:15] "GET /Trac/wiki/WikiStart?format=docbook HT TP/1.1" 500 -
I've realized that they were extracted to temporary directory in Application Data\Python-Eggs
:
Volume in drive C is System Volume Serial Number is FC5F-E6C4 Directory of C:\Documents and Settings\pb3b0255\Application Data\Python- Eggs\pagetodocbook-0.6.2-py2.5.egg-tmp\pagetodocbook\data\html2db 19.08.2008 14:10 <DIR> . 19.08.2008 14:10 <DIR> .. 31.07.2007 15:25 3 256 ar01s02.html 31.07.2007 15:25 1 987 ar01s03.html 31.07.2007 15:25 1 763 ar01s04.html 31.07.2007 15:25 1 993 ar01s05.html 31.07.2007 15:25 2 555 ar01s06.html 31.07.2007 15:25 13 393 ar01s07.html 31.07.2007 15:25 5 904 ar01s08.html 31.07.2007 15:25 7 184 ar01s09.html 31.07.2007 15:25 7 836 ar01s10.html 31.07.2007 15:25 5 506 build.xml 31.07.2007 15:25 1 142 example.xsl 31.07.2007 15:25 476 extract-section.xsl 31.07.2007 15:25 1 161 extract-toc.xsl 31.07.2007 15:25 2 396 html2db-utils.xsl 31.07.2007 15:25 18 151 html2db.xsl 31.07.2007 15:25 5 695 index.html 31.07.2007 15:25 25 586 index.src.html 31.07.2007 15:25 30 394 index.xml 31.07.2007 15:25 6 111 LICENSE.txt 31.07.2007 15:25 51 tidy.properties 21 File(s) 142 540 bytes 2 Dir(s) 1 519 210 496 bytes free
May be this is Windows-specific behaviour of Python/Trac as I never saw content extracted from egg in plugins folder before? I've tested a lot of plugins before, some of them deployed additional files to Trac, but all of them were extracted to Application Data\Python-Eggs
folder in Windows.
comment:7 follow-up: 8 Changed 16 years ago by
May be this is Windows-specific behaviour of Python/Trac as I never saw content extracted from egg in plugins folder before? I've tested a lot of plugins before, some of them deployed additional files to Trac, but all of them were extracted to Application Data\Python-Eggs folder in Windows.
Your're right, that's the expected behaviour, on both windows and other platforms.
That error message you got from tracd is an interesting one. Maybe this has to do with differences between windows and *nix paths. Could you please confirm "headingsNormalizer.xsl" in fact exists in this location on your machine:
C:\Documents and Settings\pb3b0255\Application Data\Python-Eggs\pagetodocbook-0.6.2-py2.5.egg-tmp\pagetodocbook\data\headingsNormalizer\headingsNormalizer.xsl
If it does, then this has to do with what is considered an URI by xsltproc; i think it is not considering windows slashes as a valid URI element.
I'm on vacation, so haven't got the appropriate environment near me to test this but, if you can, i'd suggest you try to apply the following changes in pagetodocbook.py:
On line 42, replace:
<xsl:import href=\"""" + resource_filename(__name__, 'data/html2db/html2db.xsl') + """\" />
by:
<xsl:import href=\"""" + resource_filename(__name__, 'data/html2db/html2db.xsl').replace('\\', '/') + """\" />
On line 52, replace:
<xsl:import href=\"""" + resource_filename(__name__, 'data/headingsNormalizer/headingsNormalizer.xsl') + """\" />
by:
<xsl:import href=\"""" + resource_filename(__name__, 'data/headingsNormalizer/headingsNormalizer.xsl').replace('\\', '/') + """\" />
comment:8 Changed 16 years ago by
Could you please confirm "headingsNormalizer.xsl" in fact exists in this location on your machine:
C:\Documents and Settings\pb3b0255\Application Data\Python-Eggs\pagetodocbook-0.6.2-py2.5.egg-tmp\pagetodocbook\data\headingsNormalizer\headingsNormalizer.xsl
Yes, it is.
After applied changes path in error messages was changed (backslash to slash), but error remains the same.
Serving on 0.0.0.0:8000 view at http://127.0.0.1:8000/ compilation error: element import xsl:import : invalid URI reference C:/Documents and Settings/pb3b0255/Applicatio n Data/Python-Eggs/pagetodocbook-0.6.2-py2.5.egg-tmp/pagetodocbook/data/headings Normalizer/headingsNormalizer.xsl 127.0.0.1 - - [19/Aug/2008 15:26:39] "GET /Trac/wiki/WikiStart?format=docbook HT TP/1.1" 500 -
Could it be that the reason is the space in path? In Windows usually you have to enclose path with spaces in it with double quotas.
comment:9 follow-up: 10 Changed 16 years ago by
I don't think it has to do with spaces, as they are valid in URIs.
Let's do one more try, please make these the lines 42 and 52 respectively (on pagetodocbook.py):
<xsl:import href=\"file:///""" + resource_filename(__name__, 'data/html2db/html2db.xsl').replace('\\', '/') + """\" />
<xsl:import href=\"file:///""" + resource_filename(__name__, 'data/headingsNormalizer/headingsNormalizer.xsl').replace('\\', '/') + """\" />
comment:10 Changed 16 years ago by
I don't think it has to do with spaces, as they are valid in URIs.
Let's do one more try, please make these the lines 42 and 52 respectively (on pagetodocbook.py):
127.0.0.1 - - [19/Aug/2008 15:50:43] "GET /Trac HTTP/1.1" 200 - compilation error: element import xsl:import : invalid URI reference file:///C:/Documents and Settings/pb3b0255/Ap plication Data/Python-Eggs/pagetodocbook-0.6.2-py2.5.egg-tmp/pagetodocbook/data/ headingsNormalizer/headingsNormalizer.xsl 127.0.0.1 - - [19/Aug/2008 15:50:48] "GET /Trac/wiki/WikiStart?format=docbook HT TP/1.1" 500 -
comment:11 Changed 16 years ago by
I've replaced space character with '%20' in URI and then it works. Thanks for your help!
So the line now looks like:
<xsl:import href=\"file:///""" + resource_filename(__name__, 'data/html2db/html2db.xsl').replace('\\', '/').replace(' ','%20') + """\" /> <xsl:import href=\"file:///""" + resource_filename(__name__, 'data/headingsNormalizer/headingsNormalizer.xsl').replace('\\', '/').replace(' ','%20') + """\" />
comment:12 follow-up: 13 Changed 16 years ago by
Glad it's working!
I'll release a new version with this issue fixed around September.
Instead of replacing spaces with '%20' i think the pathname2url() function in urllib will turn out to be a cleaner solution, but still have to confirm if it works as i think it does.
comment:13 Changed 16 years ago by
I'll release a new version with this issue fixed around September.
Okay, thanks! Just let me know by updating this ticket - I'll check the new version on Windows.
comment:14 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Finally fixed this issue in version control. An egg will hopefully be released on the following weeks.
stack trace