Bug 22355 - pyxpcom can't find components directory
Summary: pyxpcom can't find components directory
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: python-module-xpcom (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-21 20:59 MSK by Aleksey Lim
Modified: 2010-07-30 10:48 MSD (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleksey Lim 2009-11-21 20:59:14 MSK
python-module-xpcom-1.9.1.5-alt1.20091106

xpcom не может найти каталог /usr/lib/xulrunner/components из питона:

$ python -c 'import xpcom.components'
ERROR:xpcom:Obtaining the module object from Python failed.
Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/xpcom/server/__init__.py", line 40, in <module>
    from policy import DefaultPolicy
  File "/usr/lib/python2.5/site-packages/xpcom/server/policy.py", line 39, in <module>
    from xpcom import xpcom_consts, _xpcom, client, nsError, logger
  File "/usr/lib/python2.5/site-packages/xpcom/client/__init__.py", line 41, in <module>
    from xpcom import xpt, COMException, nsError, logger
<type 'exceptions.ImportError'>: cannot import name xpt

$ strace python -c 'import xpcom.components' 2>&1 | grep 'components/*"'
execve("/usr/bin/python", ["python", "-c", "import xpcom.components"], [/* 37 vars */]) = 0
stat64("/usr/lib/python2.5/site-packages/xpcom/components", 0xbfc4c758) = -1 ENOENT (No such file or directory)
open("/home/test/components", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/home/test/components", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/test/components", 0x80f694c) = -1 ENOENT (No such file or directory)
lstat64("/home/test/components", 0x80f694c) = -1 ENOENT (No such file or directory)
Comment 1 Aleksey Lim 2009-11-21 21:04:34 MSK
oops, при первом output'е в текущем каталоге был symlink на /usr/lib/xulrunner/components. Без symlink'а:

$ python -c 'import xpcom.components'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.5/site-packages/xpcom/components.py", line 231, in <module>
    import shutdown
  File "/usr/lib/python2.5/site-packages/xpcom/shutdown.py", line 51, in <module>
    class _ShutdownObserver:
  File "/usr/lib/python2.5/site-packages/xpcom/shutdown.py", line 52, in _ShutdownObserver
    _com_interfaces_ = interfaces.nsIObserver
  File "/usr/lib/python2.5/site-packages/xpcom/components.py", line 103, in __getattr__
    return self._get_one(attr)
  File "/usr/lib/python2.5/site-packages/xpcom/components.py", line 153, in _get_one
    raise xpcom.COMException(nsError.NS_ERROR_NO_INTERFACE, "The interface '%s' does not exist" % (name,))
xpcom.Exception: -2147467262 (-2147467262)
Comment 2 real@altlinux.org 2010-07-29 14:29:06 MSD
Сейчас ещё интересней:

> python -c 'import xpcom.components'                           
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/xpcom/components.py", line 39, in <module>
    import xpt
  File "/usr/lib64/python2.6/site-packages/xpcom/xpt.py", line 72, in <module>
    import xpcom._xpcom
ImportError: libpyxpcom.so: cannot open shared object file: No such file or directory
Comment 3 Alexey Gladkov 2010-07-30 10:48:25 MSD
(В ответ на комментарий №2)
> ImportError: libpyxpcom.so: cannot open shared object file: No such file or
> directory

Это я починил, но в остальном он такой же сломанный. Он всё также ругается как описано в #1. Гугл говорит, что эта проблема не только у нас.