Zdravim,
Potrebuji nejak pythonu rict ze soubor libsvn_swig_py-1.so.0 je v adresari /usr/local/lib, ale nevim jak to udelat. Zkousel jsem to pres PYTHONPATH ale to neni spravna cesta. Jak to udelat ?
Diky,
David
# find / -name libsvn_swig_py-1.so.0
/usr/local/lib/libsvn_swig_py-1.so.0
# set | grep PYTHON
PYTHONPATH=/usr/local/lib/
# python
Python 2.5b3 (r25b3:51041, Feb 24 2008, 19:02:14)
[GCC 3.4.6] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from svn import core
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.5/site-packages/svn/core.py", line 19, in <module>
from libsvn.core import *
File "/usr/local/lib/python2.5/site-packages/libsvn/core.py", line 5, in <module>
import _core
ImportError: libsvn_swig_py-1.so.0: cannot open shared object file: No such file or directory
Existují dva druhy dynamických knihoven:
- jednak moduly pro Python zkompilované jako kni - ty Python opravdu
hledá v adresářích specifikovaných PYTHONPATH,
- a jednak knihovny používané moduly, o jejich dohledání se stará
dynamický linker a na Linuxu ho ovlivníš pomocí LD_LIBRARY_PATH (nebo
/etc/ld.so.conf )
Správné řešení:
- přidat /usr/local/lib do ld.so.conf
- nebo do LD_LIBRARY_PATH
--VK
-----Pôvodná správa-----
Od: David Michal [dmi...@altien.com]
Komu: pyt...@py.cz
Predmet: [python] Jak pythonu rict kde ma knihovny?
Zdravim,
Potrebuji nejak pythonu rict ze soubor libsvn_swig_py-1.so.0 je v adresari /usr/local/lib, ale nevim jak to udelat. Zkousel jsem to pres PYTHONPATH ale to neni spravna cesta. Jak to udelat ?
Diky,
David
# find / -name libsvn_swig_py-1.so.0
/usr/local/lib/libsvn_swig_py-1.so.0
# set | grep PYTHON
PYTHONPATH=/usr/local/lib/
# python
Python 2.5b3 (r25b3:51041, Feb 24 2008, 19:02:14)
[GCC 3.4.6] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from svn import core
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.5/site-packages/svn/core.py", line 19, in
from libsvn.core import *
File "/usr/local/lib/python2.5/site-packages/libsvn/core.py", line 5, in
import _core
ImportError: libsvn_swig_py-1.so.0: cannot open shared object file: No such file or directory
-------------------
MAPY.SK - Najpresnejsie vyhladavanie aj podla cisiel domu, planovanie trasy.
http://mapy.atlas.sk
Neni to cache pythonu, ale tve promenne prostredi. Obvykle pomaha neco
jako `source /etc/profile` v shellu, ze ktereho spoustis sve programy,
protoze obecne neexistuje zpusob, jak zmeny promennych prostredi
"vypropagovat" do bezicich procesu.
-jkt
--
cd /local/pub && more beer > /dev/mouth
Já si teď nejsem jistý, jestli není po úpravě `ld.so.conf` potřeba
udělat `ldconfig` pro obnovení cache dynamického linkeru. Myslím, že
nějaké distribuce `ldconfig` po restartu dělaly, což by vysvětlovalo,
že po restartu to fungovalo.
--VK
PS: Ale chtít po mně myšlenku v 16:43 není dobrý nápad, takže prosím
laskavého čtenáře, ať to prozkoumá sám.
Jiste, mas pravdu, byl jsem vedle. Plus je jeste potreba dat pozor na
to, ze nektere distribuce generuji ld.so.conf na zaklade jinych souboru
(coz je IMHO sikovne chovani a je to dobre zdokumentovano), ale to
bychom jiz zabihali prilis do OT. Diky za opravu.
Pekny popis toho, jak se knihovny hledaji, najdou zajemci v `man ld.so`.