Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 9, 2015 19:54:21

Vady
Зарегистрирован: 2015-05-30
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопросы по модулям питона

Сейчас оптимизирую расположение модулей питона по логам strace. Заметил такие файлы и папки, которые не найдены при запуске команды python:
./Modules/Setup <–что за папка или файл?
./pybuilddir.txt <– что за файл?
./lib/python27.zip <–что внутри архива???

Еще заметил, что в первую очередь обращаются к *.so-файлам, а потом, в случае ненахождения его, обращается последовательно к *.py, *.pyc, *.pyo. Как их преобразовать в so?
Буду благодарен за ответы!

Офлайн

#2 Июнь 9, 2015 22:15:15

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Вопросы по модулям питона

so динамические библиотеки. Обычно получают компиляцией программ написанных на c, c++ и т.п.
Переписывайте программу с питона на c и компилируйте. Есть конечно и много других способов получить so файлы.



Офлайн

#3 Июнь 10, 2015 00:19:42

Vady
Зарегистрирован: 2015-05-30
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопросы по модулям питона

doza_and
so динамические библиотеки. Обычно получают компиляцией программ написанных на c, c++ и т.п.Переписывайте программу с питона на c и компилируйте. Есть конечно и много других способов получить so файлы.
Спасибо за ответ, но, извините:
Во-первых, программа на питоне, задача ее перевода на С даже не стояла.
Во-вторых, вопрос поставлен так: как py/pyc/pyo преобразовать в so (допускаются другие варианты получения so-файла)?

Офлайн

#4 Июнь 10, 2015 00:44:29

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Вопросы по модулям питона

Vady
как py/pyc/pyo преобразовать в so
Наименее трудозатратно делать это при помощи cython.

Офлайн

#5 Июнь 10, 2015 01:46:42

Vady
Зарегистрирован: 2015-05-30
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопросы по модулям питона

Shaman
Наименее трудозатратно делать это при помощи cython.
Благодарю за ответ! А примерами можно?

Офлайн

#6 Июнь 10, 2015 10:39:37

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Вопросы по модулям питона

Можно и примерами.
Имеем hw.py:

def hello():
    print 'Hello world!'
В консоли, по месту делаем:
$ cython -2 hw.py
$ gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing -I/usr/include/python2.7 -o hw.so hw.c
$ mv hw.py hw._
Проверяем:
$ python2
Python 2.7.10 (default, May 26 2015, 04:16:29)
[GCC 5.1.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from hw import hello
>>> hello()
Hello world!

Отредактировано Shaman (Июнь 10, 2015 10:42:14)

Офлайн

#7 Июнь 10, 2015 23:22:12

Vady
Зарегистрирован: 2015-05-30
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопросы по модулям питона

Shaman
Спасибо огромное!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version