Вопрос может глупый, но всё же, с питоном стал знаком совсем недавно. Как я понимаю, работа кода python осуществляется через виртуальную машину, грубо скажем, что существенно снижает скорость работы. Кроме того, на ЭВМ должна быть установлена такая машина.
Всвязи с чем возникает вопрос. Можно ли как-то код питона компилировать в исполняемый файл машины или перевести нв язык СИ?
Не судите строго, просто очень интересно.
Существуют ли компиляторы, переводящие python в объектный код машины?
Благодарю, а почему файл с расширением exe получился, но запускается, как linux бинарник?
[console][pavel@host-100 lesson1]$ nuitka hello.py
/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
[pavel@host-100 lesson1]$ ls
hello.build hello.exe hello.py
[pavel@host-100 lesson1]$ ./hello.exe
Неправильный тип данных
end programm
[pavel@host-100 lesson1]$ ./hello.exe 2 3
0.666666666667
end programm
[/console]
расширения в линуксе значения не имеют, просто часть имени файла
расширения в линуксе значения не имеют, просто часть имени файла
Это понятно. Зачем только делать такое разрешение в Linux?
Сиплюсплюшный код скомпилировать не удалость, компилятор ругается на отсутствие некоторых библиотек. Но скомпилировавшийся бинарник радует.
ivan.tiran, сделайте
[console]file бинарник.exe[/console]
если обычный линуксовый бинарник, то просто переименуйте.
Зачем только делать такое разрешение в Linux?
спросите авторов. но вообще, exe это сокращение от executable
Ну этот проект является оберткой для Cython, так что при желании можно использовать просто Cython
[console]$ cython --embed hello.py
$ gcc hello.c -I /usr/include/python2.7 -lpython2.7 -o hello[/console]
Подробнее: смотреть документацию по Cython
это не нужно. Если вам так уж нужно быстродействие, используйте сишку. Можно только некоторые критичные функции. Но вряд-ли это поможет.Вопрос может глупый, но всё же, с питоном стал знаком совсем недавно. Как я понимаю, работа кода python осуществляется через виртуальную машину, грубо скажем, что существенно снижает скорость работы. Кроме того, на ЭВМ должна быть установлена такая машина.
Всвязи с чем возникает вопрос. Можно ли как-то код питона компилировать в исполняемый файл машины или перевести нв язык СИ?
Не судите строго, просто очень интересно.
Зыж никаких расширений в линуксе нет. Есть только имя. Имя исполняемого файла может быть любым, единственное что необходимо -- право выполнения. Для скриптов ещё и право чтения.
Если вам так уж нужно быстродействие, используйте сишку.
Доктор вы правы! Лучше использовать Си, так как данный способ перевода программы Python в Си, требует целой кучи библиотек которые использует Python. По этому перенос бинарника с одной машины на другую, полученного данным способом, потребует установки и самого Python и библиотек которые он использует.
Python хорош тем, что число готовых решений под него уже обогнало Фортран.