У меня установлена WordPress для личного блога, и я постепенно портирую все небольшие веб-фрагменты, которые я написал за эти годы, на страницы блога.
Одной из таких страниц является http://www.projecttoomanycooks.co.uk/cgi-bin/memory/majorAnalysis.py, представляющий собой простой скрипт на python, который возвращает список слов - я хотел бы встроить это поведение в страницу wordpress. - Может ли кто-нибудь указать мне правильное направление для более простого способа запуска пятна Python в WordPress?
РЕДАКТИРОВАТЬ - после замечательного ответа ниже, я получил много дальше ... но, к сожалению, до сих пор не совсем там ...
У меня есть питон, который выполняется на сервере ...
projecttoomanycooks server [~/public_html/joereddington/wp-content/plugins]#./hello.py
Hello World!
и он находится в том же каталоге, что и активированный плагин ...
Код Python ... который имеет следующий код ...
#!/usr/bin/python
print("Hello World!")
Php:
<?php
/**
* Plugin Name: Joe's python thing.
* Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
* Description: A brief description of the Plugin.
* Version: The Plugin's Version Number, e.g.: 1.0
* Author: Name Of The Plugin Author
* Author URI: http://URI_Of_The_Plugin_Author
* License: A "Slug" license name e.g. GPL2
*/
/*from http://wordpress.stackexchange.com/questions/120259/running-a-python-scri
pt-within-wordpress/120261?noredirect=1#120261 */
add_shortcode( 'python', 'embed_python' );
function embed_python( $attributes )
{
$data = shortcode_atts(
array(
'file' => 'hello.py'
),
$attributes
);
$handle = popen( __DIR__ . '/' . $data['file'], 'r');
$read = fread($handle, 2096);
pclose($handle);
return $read;
}
Ответы:
Вы можете использовать
popen()
для чтения или записи в сценарии Python (это работает с любым другим языком тоже). Если вам нужно взаимодействие (передача переменных), используйтеproc_open()
.Простой пример для печати Hello World! в плагине WordPress
Создайте плагин, зарегистрируйте шорткод:
Теперь вы можете использовать этот шорткод в редакторе сообщений с помощью
[python]
или[python file="filename.py"]
.Поместите скрипты Python, которые вы хотите использовать, в тот же каталог, что и файл плагина. Вы также можете поместить их в каталог и настроить путь в обработчике шорткода.
Теперь создайте сложный скрипт на Python, например:
И это все. Используйте шорткод и получите такой вывод:
источник
Я следовал примеру сценария из первого ответа, но не получал никаких выводов или ошибок.
Я изменил эту строку:
к этому:
а затем получил сообщение «Отказано в разрешении».
На консоли я побежал
обновил страницу, и все заработало отлично.
Это может быть проблемой, которую Джо видел выше. Мне не хватает представителя, чтобы комментировать, извините. Надеюсь, это кому-нибудь поможет.
источник
chmod +x filename.py
будет делатьВот небольшой скрипт, который использует,
proc_open
как отмечено выше, для отправки одной простой текстовой переменной в скрипт Python:Внизу добавлено несколько тестов, чтобы увидеть, является ли файл python
rwx
. Я думаю, что лучший способ отправить сообщение -argv
использовать fwrite, но после этого урока у меня ничего не вышло .Вот скрипт Python, который я использовал. Как отмечено в комментариях выше,
#!/usr/bin/env python
может потребоваться что-то подобное , в зависимости от сервера.источник