#python #c
#python #c
Вопрос:
вот код, который я хочу изменить LD_LIBRARY_PATH на exec код:
#!/usr/bin/python
import os
code='''
import os
print os.getenv("LD_LIBRARY_PATH");
import wrap
'''
os.environ['LD_LIBRARY_PATH'] = '/home/dma/python'
os.environ["PYTHONPATH"] = '/home/dma/python'
exec code
Результатом является:
/home/dma/python
Traceback (most recent call last):
File "./test.py", line 13, in ?
exec code
File "<string>", line 4, in ?
ImportError: example.so: cannot open shared object file: No such file or directory
ПРИМЕЧАНИЕ: test.py зависеть от wrap.so , wrap.so зависеть от example.so
Есть ли какой-нибудь способ выполнить объект code в специальной среде?
Спасибо Dma
Комментарии:
1. и где находится example.so находится?
2. [dma@amd64 ~/python]$ ls example.c пример.o example.so test.py обернуть.c обернуть.o wrap.so [dma@amd64 ~/python]$ pwd /home/dma/python
3. но почему вопрос помечен c, если вам нужен код на python?
4. речь идет об обмене Python / C.
Ответ №1:
Кажется, что его example.so
нет в /home/dma/python
.
Комментарии:
1. он находится в /home/dma / python. Я проверил.
2. Я импортирую «wrap» (будет загружаться «wrap.so » в ‘.’), которые зависят от ‘example.so ‘
Ответ №2:
Я использую popen2 для решения этой проблемы. Это работает, у кого-нибудь есть способ получше?