#51032 closed defect (wontfix)
python27: modules built with the default python27 fail when used with python27 +ucs4
Reported by: | ballapete (Peter "Pete" Dyballa) | Owned by: | dbevans (David B. Evans) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | Cc: | m74z00219@… | |
Port: | python27 |
Description
That's the error:
Traceback (most recent call last): File "/opt/local/bin/itstool", line 25, in <module> import libxml2 File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/libxml2.py", line 1, in <module> import libxml2mod ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/libxml2mod.so, 2): Symbol not found: _PyUnicodeUCS2_AsUTF8String Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/libxml2mod.so Expected in: flat namespace in /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/libxml2mod.so
I have installed:
itstool @2.0.2_2 (active) py27-libxml2 @2.9.2_0 (active) python27 @2.7.11_2+ucs4 (active)
Attachments (1)
Change History (8)
Changed 9 years ago by ballapete (Peter "Pete" Dyballa)
comment:1 follow-up: 2 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | devans@… openmaintainer@… removed |
---|---|
Owner: | changed from macports-tickets@… to devans@… |
Summary: | gtk-doc-1.25 fails to build on Mac OS X 10.6.8, Snow Leopard, because of Python27 problems → gtk-doc @1.25 fails to build with python27 +ucs4 |
As I recall, using python27's +ucs4 variant is the problem. My recollection is that the use of that variant is not recommended.
comment:2 Changed 9 years ago by ballapete (Peter "Pete" Dyballa)
Replying to ryandesign@…:
As I recall, using python27's +ucs4 variant is the problem. My recollection is that the use of that variant is not recommended.
Some other package, that I don't remember, is needing exactly that variant…
comment:3 Changed 9 years ago by dbevans (David B. Evans)
The problem here is not with gtk-doc but with py27-xml2 which is being loaded by itstool during the build process. py27-xml2 is usually installed via binary archive which is built on the buildbots using python27 built with the default variants (not with +ucs4). As Ryan has said, the recommended solution is to avoid using python27 +ucs4 which does not provide the same symbols as the default version. If you insist on using python27 +ucs4 then you may need to rebuild py27-xml2 (and possibly others) locally using the -s option to build from source using your python version rather than loading the prebuilt binary archive.
sudo port -ns upgrade --force py27-xml2
I haven't tried doing this so no guarantees. Best to stick with the default version if at all possible.
comment:5 follow-up: 6 Changed 8 years ago by todofixthis (Phoenix)
Upgrading py27-libxml2
using the method recommended in https://trac.macports.org/ticket/51032#comment:3 allowed me to build gtk-doc successfully.
`
sudo port -ns upgrade --force py27-libxml2
`
comment:6 Changed 8 years ago by dbevans (David B. Evans)
Port: | python27 added; gtk-doc removed |
---|---|
Resolution: | → wontfix |
Status: | new → closed |
Summary: | gtk-doc @1.25 fails to build with python27 +ucs4 → python27: modules built with the default python27 fail when used with python27 +ucs4 |
Replying to phoenix.zerin@…:
Upgrading
py27-libxml2
using the method recommended in https://trac.macports.org/ticket/51032#comment:3 allowed me to build gtk-doc successfully.
` sudo port -ns upgrade --force py27-libxml2
`
Best to upgrade to Python 3.3 if at all possible (https://www.python.org/dev/peps/pep-0393/).
In general, if use of the full Unicode code set is important for you, using a recent python3 where it is handled natively is, indeed, your best bet. We are currently discontinuing support for Python 3.3 so Python 3.4+ is recommended.
The problem here is not an issue with a particular port but with mixing binary modules built against python27 (binary archive of py27-xml2) with python27 +ucs4. Rebuilding these modules against python27 +ucs4 as recommended above can help but this is not guaranteed to work in all cases. Doing this properly would mean rebuilding all python modules from source (using port -s) against python2.7 +ucs but again this is believed to have led to other problems in the past.
I'm looking at upgrading itstool to use python3 if possible.
See https://trac.macports.org/ticket/51141#comment:3 for additional discussion of the +ucs4 issue.
comment:7 Changed 8 years ago by dbevans (David B. Evans)
Follow up:
itstool does not currently support python3 but there's work going on upstream to remedy the situation. See itstool PR #3.
main.log