Saya memiliki WordPress menginstal untuk blog pribadi dan saya secara bertahap porting semua bit web kecil yang saya tulis selama bertahun-tahun ke halaman di blog.
Salah satu halaman tersebut adalah http://www.projecttoomanycooks.co.uk/cgi-bin/memory/majorAnalysis.py yang merupakan skrip python sederhana yang mengembalikan daftar kata - Saya ingin menanamkan perilaku itu dalam halaman wordpress - bisakah seseorang mengarahkan saya ke arah yang benar untuk cara mudah menjalankan titik python dalam wordpress?
EDIT - mengikuti jawaban yang bagus di bawah ini, saya punya banyak hal lebih lanjut ... tapi sayangnya masih belum cukup ...
Saya punya python yang dijalankan di server ...
projecttoomanycooks server [~/public_html/joereddington/wp-content/plugins]#./hello.py
Hello World!
dan itu ada di direktori yang sama dengan plugin yang diaktifkan ...
Kode python ... yang memiliki kode berikut ...
#!/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;
}
Jawaban:
Anda dapat menggunakan
popen()
untuk membaca atau menulis ke skrip Python (ini juga berfungsi dengan bahasa lain). Jika Anda memerlukan interaksi (lewat variabel) gunakanproc_open()
.Contoh sederhana untuk mencetak Hello World! dalam plugin WordPress
Buat plugin, daftarkan kode pendek:
Sekarang Anda dapat menggunakan kode pendek itu di editor pos dengan
[python]
atau[python file="filename.py"]
.Masukkan skrip Python yang ingin Anda gunakan ke direktori yang sama dengan file plugin. Anda juga dapat menempatkannya di direktori dan menyesuaikan jalur di penangan kode pendek.
Sekarang buat skrip Python kompleks seperti ini:
Dan itu saja. Gunakan kode pendek, dan dapatkan output ini:
sumber
Saya mengikuti contoh skrip dari jawaban pertama, tetapi tidak mendapatkan output atau kesalahan.
Saya mengubah baris ini:
untuk ini:
dan kemudian mendapat pesan "izin ditolak".
Di konsol, saya berlari
menyegarkan halaman, dan semuanya bekerja dengan sempurna.
Ini mungkin masalah yang dilihat Joe di atas. Saya tidak punya cukup perwakilan untuk berkomentar, maaf. Semoga ini bisa membantu seseorang.
sumber
chmod +x filename.py
akan melakukannyaBerikut ini adalah skrip kecil yang menggunakan
proc_open
seperti disebutkan di atas, untuk mengirim satu variabel teks sederhana ke skrip python:Menambahkan beberapa tes sebagai bagian bawah untuk melihat apakah file python
rwx
. Saya pikir cara yang lebih baik untuk mengirimargv
akan menggunakan fwrite, tetapi tidak berhasil bagi saya mengikuti tutorial ini .Berikut ini adalah skrip python yang saya gunakan. Seperti disebutkan dalam komentar di atas, sesuatu seperti
#!/usr/bin/env python
mungkin diperlukan, tergantung pada server.sumber