Izinhlelo zePython ezisebenzayo esipheqululini sakho

Eminyakeni yamuva nje, i-webanda masserk (evame ukufushaniswa njenge-wasm) ivele njengobuchwepheshe obuthakazelisa obudlula ubuchwepheshe besiphequluli seWebhu kude kakhulu kwezindawo zendabuko ze-HTML, CSS, ne-JavaScript.
Njengonjiniyela wePython, eyodwa uhlelo lokusebenza olujabulisayo ikakhulukazi yikhono lokusebenzisa ikhodi yePython ngqo esipheqululini. Kulesi sihloko, ngizohlola ukuthi iyiphi i-webaskekhe eyiyo (nobuhlobo bayo belabhulali yePyodide), khuluma ngezinzuzo zawo kanye namacala asetshenzisiwe nsuku zonke, futhi ungene ezibonelweni ezithile ezisebenzayo zendlela ongayisebenzisa ngayo i-Python Programsk kuwebhu.
Lawa mathuluzi angazuzisa ososayensi bedatha kanye nabasebenza nge-ML. I-Pyodide iletha ingxenye ebalulekile ye-Python Stack yesayensi (inxenye, ama-panda, i-skikit-funda, i-matplotlib, i-scip, njll) kwisiphequluli, okusho ukuthi ukusebenzisa amathuluzi ajwayelekile nemitapo yolwazi ngesikhathi sokuthuthukiswa kwekhodi kungenzeka. Kungaba wusizo nezinhloso zokubonisa. Njengoba uzobona esibonelweni sami sokugcina, ukuhlanganisa amandla wedatha ye-Python nge-HTML, i-CSS, ne-JavaScript ye-UI, ungakha ngokushesha amadeshibhodi noma amathuluzi asebenzayo ngaphandle kokudinga ukubuyela emuva okuhlukile kwamacala amaningi.
Yini i-webaryelk?
I-webarsekhe iyifomethi yokufundiswa kanambambili ephansi eyenziwe njengethagethi ephathekayo yokuhlanganisa izilimi eziphakeme kakhulu, njenge-C, C ++, ukugqwala, ngisho nepython. Yakhelwe ukunika amandla izinhlelo zokusebenza eziphezulu kwiWebhu ngaphandle kwezinye izihibe zokubulawa kwendabuko kwe-JavaScript, njengejubane lesikhathi sokusebenza. Ezinye izici ezibalulekile zeWeWeval-ke zifaka:
- Ukuthwala. Amamojula we-webassemmemmermem asebenza ngokungaguquki kuzo zonke iziphequluli zanamuhla zesimanje.
- Ukusebenza. Ifomethi kanambambili icwecwe futhi ingahlukaniswa ngokushesha, okuvumela ngejubane lokubulawa eduze komdabu.
- Ezokuphepha. Ukugijima emvelweni egcwele isihlabathi, i-webasserk inikeza iziqinisekiso zokuphepha eziqinile.
- Ulimi lwe-agnosticism. Yize iziphequluli zisekela ngokuyinhloko iJavaScript, iWebasserker Inika amandla abathuthukisi ukuthi babhale ikhodi kwezinye izilimi futhi bayihlanganise neWebsasekly (i-Wasm).
Yini ongasetshenziselwa i-webarselke?
I-WebASKILY inezicelo eziningi eziningi. Amanye amacala okusetshenziswa okuvame kakhulu afaka: –
- Izinhlelo zokusebenza zewebhu eziphezulu. I-WebASTMAME ingasiza izinhlelo zokusebenza ezifana nemidlalo, isithombe nabahleli bevidiyo, kanye nokufanisa kufezekisa ukusebenza okusondelene nangomdabu.
- Ikhodi yefa lokufaka ifayili. Ikhodi ebhalwe ku-C, C ++, noma ukugqwala kungahlanganiswa ku-webasarek-makube, okuvumela abathuthukisi ukuthi basebenzise kabusha imitapo yolwazi ekhona kanye namakhodi wekhodi kuwebhu.
- Ukucubungula kwe-multimedia. Imitapo yolwazi yokusebenza komsindo nevidiyo iyazuza ngesivinini seWebASMY, inika amandla imisebenzi eyinkimbinkimbi yokucubungula ngesikhathi sangempela.
- I-Computing yesayensi. Ukuhlanganiswa okunamandla okufana nokufunda komshini, ukubonwa ngedatha, noma ukumbumbuluzwa kwamanani kungalayishwa kumamojula we-webassumbly.
- Ukugijima izilimi eziningi. Amaphrojekthi anjengePyodide avumela i-Python (kanye nemvelo yayo ebanzi) ukuba yenziwe esipheqululini ngaphandle kokudinga ukubuyela emuva kweseva.
Uma uvame ikhodi ePython, lelo phuzu lokugcina kufanele lenze izindlebe zakho zikhuphuke, ngakho-ke ake singene kuleso sici ngokuqhubekayo.
Egijima i-python kuwebhu
Ngokwesiko, uPython ugijimela kwiseva noma kwizicelo zedeskithophu. Kodwa-ke, ngenxa yemizamo efana PyodideUPython angagijima esipheqululini nge-webandalk. I-Pyodide ihlanganisa ikhodi ye-CHSTHON INDINGCWELWE I-WEBASCHME, ukuvumela ukuthi ukhiphe ikhodi yePython futhi usebenzise imitapo yolwazi eminingi ethandwayo yangasese ngqo kuhlelo lwakho lokusebenza lwewebhu.
Futhi lokhu akuyona nje i-gimmick. Kunezinzuzo eziningana zokwenza lokhu, kufaka phakathi: –
- Usebenzisa imvelo ebanzi yePython ebanzi, kufaka phakathi amaphakheji wesayensi yedatha (inunce, panda, matplotlib) kanye nokufunda komshini (ukufundwa kwe-skikit, ukufundwa kwe-tensorflow).
- Ukuphendula okuthuthukisiwe njengoba kudingeka uhambo oluncane oluyindilinga kwiseva.
- Kuyinto ukuthunyelwa okulula njengoba yonke i-logic yohlelo lokusebenza ingahlala ekugcineni.
Sikhulume ngePyodide amahlandla ambalwa asevele, ngakho-ke ake sibhekisise ukuthi i-Pyodide iyini ngempela.
Yini i-pyodide
Umqondo ngemuva kwePyodide wazalwa esesidingo esikhulayo sokusebenzisa ikhodi yePython ngqo esipheqululini ngaphandle kokuncika ekusethweni kwendabuko kweseva yeseva. Ngokwesiko, izinhlelo zokusebenza zeWebhu zincike kuJavaScript zokusebenzisana kwamakhasimende, kushiya i-Python egcinwe kwizicelo zokugcina noma zedeskithophu. Kodwa-ke, ngokuqala kwe-webanday-ke kwavela ithuba lokuvala leli gebe.
Ucwaningo lweMozilla lwabona amandla ale ndlela futhi uhlele ePort CHYthon, ukuqaliswa kwesethenjwa kwePython, kuWebAssebly usebenzisa i-EMSCRIPPENT Toolchain. Lo mzamo wawumayelana nokusebenzisa i-Python esipheqululini futhi uvule izwe elisha lezicelo ezisebenzayo, izinhlelo zokusebenza eziseceleni ezinikwe amandla yi-Python ecebile eqotshwe imitapo yolwazi yesayensi yedatha, i-computical yenombolo, nokuningi.
Ukufingqa, emgogodleni wayo, i-Pyodide iyitheku le-cpython elihlanganiswe ku-webasase. Lokhu kusho ukuthi lapho ugijimisa ikhodi yePython esipheqululini usebenzisa i-Pyodide, ukhipha umhumushi osebenza ngokugcwele wePython owenzelwe imvelo yewebhu.
Kwesokudla, sekuyisikhathi sokubheka enye ikhodi.
Ukusetha imvelo yokuthuthuka
Ngaphambi kokuthi siqale ukufaka amakhodi, ake sisekele imvelo yethu yentuthuko. Ukwenza okuhle kakhulu ukudala imvelo ehlukile ye-Python lapho ungafaka noma iyiphi isoftware edingekayo bese uvivinya amakhodi, wazi ukuthi noma yini oyenzayo kule ndawo.
Ngisebenzisa i-colla yalokhu, kepha ungasebenzisa noma iyiphi indlela owaziyo efanele wena. Qaphela ukuthi ngisebenzisa i-Linux (WSL2 ku-Windows).
#create our test environment
(base) $ conda create -n wasm_test python=3.12 -y
# Now activate it
(base) $ conda activate wasm_test
Manje njengoba imvelo yethu isethwe, singafaka imitapo yolwazi edingekayo ne-software.
#
#
(wasm_test) $ pip install jupyter nest-asyncio
Manje thayipha jupyter notebook ekutholeni kwakho umyalo. Kufanele ubone incwajana ye-jupyter ivulekile esipheqululini sakho. Uma lokho kungenzeki ngokuzenzakalelayo, kungenzeka ukuthi uyobona i-screeful yolwazi ngemuva kwe jupyter notebook umyalo. Eduze kwephansi, kuzoba ne-URL okufanele uyikopishe bese unamathisela esipheqululini sakho ukuqala incwajana ye-jupyter.
I-URL yakho izohluka ngeyami, kepha kufanele ibukeke into enje: –
Isibonelo sekhodi 1 – Sawubona emhlabeni jikelele usebenzisa i-Pyodide
Ake siqale ngesibonelo esilula esingenzeka. Indlela elula yokufaka i-Pyodide ekhasini lakho le-HTML ngenethiwekhi yokulethwa kokuqukethwe (CDN). Sibe sesiphrinta umbhalo “Sawubona World!”
Hello, World! with Pyodide
Ngigijime ikhodi engenhla ku-w3schoolols HTML Tryit Editor futhi uthole lokhu,
Lapho inkinobho ichofozwa, i-Pyodide isebenza ikhodi yePython ephrinta "Sawubona, Umhlaba!". Asiboni lutho oluphrintiwe esikrinini, njengoba liphrinta kwikhonsoli ngokuzenzakalelayo. Sizokulungisa lokho esibonelweni sethu esilandelayo.
Isibonelo sekhodi 2 - Ukuphrinta okukhipha kwisiphequluli
Esibonelweni sethu sesibili, sizosebenzisa i-Pyodide ukuqhuba ikhodi yePython esipheqululini esizokwenza ukubalwa okulula kwezibalo. Kulokhu, sizobala impande yesikwele engu-16 futhi akhiphe umphumela wesiphequluli.
Pyodide Example
Ukugijima ikhodi engenhla kwisiphequluli se-W3Schoolls TrwarT, ngithole lo mphumela.

Isibonelo sekhodi 3 - Ukushayela imisebenzi ye-Python kusuka ku-JavaScript
Enye into ebalulekile futhi enamandla yokusebenzisa i-Pyodide yikhono lokushayela imisebenzi yePython kusuka ku-JavaScript nakulokho okuphambene nalokho.
Kulesi sibonelo, sakha umsebenzi wePython owenza umsebenzi olula wezibalo - ukubala i-factorial yenombolo - futhi uyibize kusuka kwikhodi yeJavaScript.
Call Python from JavaScript
Nansi umphumela wesampula lapho ugijima kuma-w3schools. Ngeke ngifaka isigaba sekhodi kulokhu, okukhipha nje.

Isibonelo sekhodi 4- Usebenzisa imitapo yolwazi yePython, isib
Amandla kaPython aqhamuka emlandweni wawo ocebile wemitapo yolwazi. Nge-Pyodide, ungangenisa futhi usebenzise imitapo yolwazi ethandwayo efana ne-Numpy ngamanani enombolo.
Isibonelo esilandelayo sibonisa ukuthi ungayenza kanjani imisebenzi yokuhleleka usebenzisa inuncer kwisiphequluli. Umtapo wezinkundla ulayishwa kusetshenziswa pyodide.olockpackage sebenza.
NumPy in the Browser

Isibonelo sekhodi 5- Usebenzisa imitapo yolwazi yePython, isib. I-MatPlotlib
Enye into enamandla yokusebenzisa i-python esipheqululini yikhono lokukhiqiza nge-visualAtions. NgePyodide, ungasebenzisa imitapo yolwazi ye-GUI efana ne-matplotlib ukudala amapulangwe ngamandla. Nakhu ukuthi ungakhiqiza kanjani futhi ubonise icebo elilula entweni ye-canvas.
Kulesi sibonelo, sakha icebo le-quadratic (y = x²) sisebenzisa i-matplotlib, gcina isithombe esiya kwi-buffer in-memori njenge-PNG, bese sikufaka njengentambo ye-base64 ngaphambi kokuyibonisa.
Matplotlib in the Browser

Isibonelo sekhodi 6: Running Python esisebenzini sewebhu
Ukuze uthole izinhlelo zokusebenza eziyinkimbinkimbi noma lapho udinga ukuqinisekisa ukuthi amakhono asindayo awavimbi intambo enkulu ye-UI, ungagijima i-Pyodide esisebenzini sewebhu. Abasebenzi beWebhu bakuvumela ukuthi usebenzise imibhalo kwimicu yangemuva, ukugcina uhlelo lwakho lokusebenza luphendula.
Ngezansi kuyisibonelo sendlela yokusetha i-Pyodide esisebenzini sewebhu. Senza ukubala futhi silingisa ukubala ukugijima isikhashana ngokwazisa ukubambezeleka kusetshenziswa Ukulala () sebenza. Sibonisa futhi ngokuvuselela i-counter ekhombisa ukugijima i-UI enkulu futhi ephendula ngokujwayelekile.
Sizodinga amafayela amathathu ngalokhu: - Ifayela le-Index.html namafayela amabili we-JavaScript.
Index.html
Pyodide Web Worker Example
Status: Idle
percer.js
// Load Pyodide from the CDN inside the worker
self.importScripts("
async function initPyodide() {
self.pyodide = await loadPyodide();
// Inform the main thread that Pyodide has been loaded
self.postMessage("Pyodide loaded in Worker");
}
initPyodide();
// Listen for messages from the main thread
self.onmessage = async (event) => {
if (event.data === 'start') {
// Execute a heavy computation in Python within the worker.
// The compute function now pauses for 0.5 seconds every 1,000,000 iterations.
let result = await self.pyodide.runPythonAsync(`
import time
def compute():
total = 0
for i in range(1, 10000001): # Loop from 1 to 10,000,000
total += i
if i % 1000000 == 0:
time.sleep(0.5) # Pause for 0.5 seconds every 1,000,000 iterations
return total
compute()
`);
// Send the computed result back to the main thread
self.postMessage("Computed result: " + result);
}
};
main.js
// Create a new worker from worker.js
const worker = new Worker('worker.js');
// DOM elements to update status and output
const statusElement = document.getElementById('status');
const outputElement = document.getElementById('workerOutput');
const startButton = document.getElementById('startWorker');
let timerInterval;
let secondsElapsed = 0;
// Listen for messages from the worker
worker.onmessage = (event) => {
// Append any message from the worker to the output
outputElement.textContent += event.data + "n";
if (event.data.startsWith("Computed result:")) {
// When computation is complete, stop the timer and update status
clearInterval(timerInterval);
statusElement.textContent = `Status: Completed in ${secondsElapsed} seconds`;
} else if (event.data === "Pyodide loaded in Worker") {
// Update status when the worker is ready
statusElement.textContent = "Status: Worker Ready";
}
};
// When the start button is clicked, begin the computation
startButton.addEventListener('click', () => {
// Reset the display and timer
outputElement.textContent = "";
secondsElapsed = 0;
statusElement.textContent = "Status: Running...";
// Start a timer that updates the main page every second
timerInterval = setInterval(() => {
secondsElapsed++;
statusElement.textContent = `Status: Running... ${secondsElapsed} seconds elapsed`;
}, 1000);
// Tell the worker to start the heavy computation
worker.postMessage('start');
});
Ukuqalisa le khodi, dala wonke amafayela amathathu angenhla bese uwafaka kwisikhombi esifanayo ohlelweni lwakho lwasendaweni. Kulolo mkhombandlela, thayipha umyalo olandelayo.
$ python -m http.server 8000
Manje, esipheqululini sakho, thayipha le URL kuyo.
Kufanele ubone isikrini esinjengalesi.

Manje, uma ucindezela i- Start Computation Inkinobho, kufanele ubone i-counter ekhonjiswe esikrinini, iqale ngo-1 bese ikhipha i-1 njalo ngomzuzwana kuze kube yilapho kuboniswa okuphelele futhi imiphumela yayo yokugcina isiyonke.
Lokhu kukhombisa ukuthi umqondo ongaphambili wokuphela kanye nokuhlanganiswa akucindezelwa umsebenzi owenziwa yikhodi yePython ngemuva kwenkinobho.

Isibonelo sekhodi 7: Ukusebenzisa ideshibhodi elula yedatha
Isibonelo sethu sokugcina, ngizokukhombisa ukuthi ungayisebenzisa kanjani ideshibhodi yedatha elula ngqo esipheqululini sakho. Idatha yethu yomthombo izoba idatha yokuthengisa yokwenziwa kufayela le-CSV.
Sidinga amafayela amathathu kulokhu, konke okufanele kube kufolda efanayo.
I-Sales_data.csv
Ifayela engilisebenzise lalinamarekhodi ayi-100,000, kepha ungenza leli fayela likhulu noma libe lincane ngendlela othanda ngayo. Nawa amarekhodi angamashumi amabili okuqala ukukunikeza umbono wokuthi idatha ibukeka kanjani.
Date,Category,Region,Sales
2021-01-01,Books,West,610.57
2021-01-01,Beauty,West,2319.0
2021-01-01,Electronics,North,4196.76
2021-01-01,Electronics,West,1132.53
2021-01-01,Home,North,544.12
2021-01-01,Beauty,East,3243.56
2021-01-01,Sports,East,2023.08
2021-01-01,Fashion,East,2540.87
2021-01-01,Automotive,South,953.05
2021-01-01,Electronics,North,3142.8
2021-01-01,Books,East,2319.27
2021-01-01,Sports,East,4385.25
2021-01-01,Beauty,North,2179.01
2021-01-01,Fashion,North,2234.61
2021-01-01,Beauty,South,4338.5
2021-01-01,Beauty,East,783.36
2021-01-01,Sports,West,696.25
2021-01-01,Electronics,South,97.03
2021-01-01,Books,West,4889.65
Index.html
Lesi yisibonisi esikhulu se-GUI kudeshibhodi yethu.
Pyodide Sales Dashboard
📈 Sales Data Visualization
📊 Sales Data Table
main.js
Lokhu kuqukethe ikhodi yethu eyinhloko yePython Pyodide.
async function loadPyodideAndRun() {
const pyodide = await loadPyodide();
await pyodide.loadPackage(["numpy", "pandas", "matplotlib"]);
document.getElementById("analyzeData").addEventListener("click", async () => {
const fileInput = document.getElementById("csvUpload");
const selectedMetric = document.getElementById("metricSelect").value;
const chartImage = document.getElementById("chartImage");
const tableOutput = document.getElementById("tableOutput");
if (fileInput.files.length === 0) {
alert("Please upload a CSV file first.");
return;
}
// Read the CSV file
const file = fileInput.files[0];
const reader = new FileReader();
reader.readAsText(file);
reader.onload = async function (event) {
const csvData = event.target.result;
await pyodide.globals.set('csv_data', csvData);
await pyodide.globals.set('selected_metric', selectedMetric);
const pythonCode =
'import sysn' +
'import ion' +
'import numpy as npn' +
'import pandas as pdn' +
'import matplotlibn' +
'matplotlib.use("Agg")n' +
'import matplotlib.pyplot as pltn' +
'import base64n' +
'n' +
'# Capture outputn' +
'output_buffer = io.StringIO()n' +
'sys.stdout = output_buffern' +
'n' +
'# Read CSV directly using csv_data from JavaScriptn' +
'df = pd.read_csv(io.StringIO(csv_data))n' +
'n' +
'# Ensure required columns existn' +
'expected_cols = {"Date", "Category", "Region", "Sales"}n' +
'if not expected_cols.issubset(set(df.columns)):n' +
' print("❌ CSV must contain 'Date', 'Category', 'Region', and 'Sales' columns.")n' +
' sys.stdout = sys.__stdout__n' +
' exit()n' +
'n' +
'# Convert Date column to datetimen' +
'df["Date"] = pd.to_datetime(df["Date"])n' +
'n' +
'plt.figure(figsize=(12, 6))n' +
'n' +
'if selected_metric == "total_sales":n' +
' total_sales = df["Sales"].sum()n' +
' print(f"💰 Total Sales: ${total_sales:,.2f}")n' +
' # Add daily sales trend for total sales viewn' +
' daily_sales = df.groupby("Date")["Sales"].sum().reset_index()n' +
' plt.plot(daily_sales["Date"], daily_sales["Sales"], marker="o")n' +
' plt.title("Daily Sales Trend")n' +
' plt.ylabel("Sales ($)")n' +
' plt.xlabel("Date")n' +
' plt.xticks(rotation=45)n' +
' plt.grid(True, linestyle="--", alpha=0.7)n' +
' # Show top sales days in tablen' +
' table_data = daily_sales.sort_values("Sales", ascending=False).head(10)n' +
' table_data["Sales"] = table_data["Sales"].apply(lambda x: f"${x:,.2f}")n' +
' print("Top 10 Sales Days
")n' +
' print(table_data.to_html(index=False))n' +
'elif selected_metric == "category_sales":n' +
' category_sales = df.groupby("Category")["Sales"].agg([n' +
' ("Total Sales", "sum"),n' +
' ("Average Sale", "mean"),n' +
' ("Number of Sales", "count")n' +
' ]).sort_values("Total Sales", ascending=True)n' +
' category_sales["Total Sales"].plot(kind="bar", title="Sales by Category")n' +
' plt.ylabel("Sales ($)")n' +
' plt.xlabel("Category")n' +
' plt.grid(True, linestyle="--", alpha=0.7)n' +
' # Format table datan' +
' table_data = category_sales.copy()n' +
' table_data["Total Sales"] = table_data["Total Sales"].apply(lambda x: f"${x:,.2f}")n' +
' table_data["Average Sale"] = table_data["Average Sale"].apply(lambda x: f"${x:,.2f}")n' +
' print("Sales by Category
")n' +
' print(table_data.to_html())n' +
'elif selected_metric == "region_sales":n' +
' region_sales = df.groupby("Region")["Sales"].agg([n' +
' ("Total Sales", "sum"),n' +
' ("Average Sale", "mean"),n' +
' ("Number of Sales", "count")n' +
' ]).sort_values("Total Sales", ascending=True)n' +
' region_sales["Total Sales"].plot(kind="barh", title="Sales by Region")n' +
' plt.xlabel("Sales ($)")n' +
' plt.ylabel("Region")n' +
' plt.grid(True, linestyle="--", alpha=0.7)n' +
' # Format table datan' +
' table_data = region_sales.copy()n' +
' table_data["Total Sales"] = table_data["Total Sales"].apply(lambda x: f"${x:,.2f}")n' +
' table_data["Average Sale"] = table_data["Average Sale"].apply(lambda x: f"${x:,.2f}")n' +
' print("Sales by Region
")n' +
' print(table_data.to_html())n' +
'elif selected_metric == "monthly_trends":n' +
' df["Month"] = df["Date"].dt.to_period("M")n' +
' monthly_sales = df.groupby("Month")["Sales"].agg([n' +
' ("Total Sales", "sum"),n' +
' ("Average Sale", "mean"),n' +
' ("Number of Sales", "count")n' +
' ])n' +
' monthly_sales["Total Sales"].plot(kind="line", marker="o", title="Monthly Sales Trends")n' +
' plt.ylabel("Sales ($)")n' +
' plt.xlabel("Month")n' +
' plt.xticks(rotation=45)n' +
' plt.grid(True, linestyle="--", alpha=0.7)n' +
' # Format table datan' +
' table_data = monthly_sales.copy()n' +
' table_data["Total Sales"] = table_data["Total Sales"].apply(lambda x: f"${x:,.2f}")n' +
' table_data["Average Sale"] = table_data["Average Sale"].apply(lambda x: f"${x:,.2f}")n' +
' print("Monthly Sales Analysis
")n' +
' print(table_data.to_html())n' +
'n' +
'plt.tight_layout()n' +
'n' +
'buf = io.BytesIO()n' +
'plt.savefig(buf, format="png", dpi=100, bbox_inches="tight")n' +
'plt.close()n' +
'img_data = base64.b64encode(buf.getvalue()).decode("utf-8")n' +
'print(f"IMAGE_START{img_data}IMAGE_END")n' +
'n' +
'sys.stdout = sys.__stdout__n' +
'output_buffer.getvalue()';
const result = await pyodide.runPythonAsync(pythonCode);
// Extract and display output with markers
const imageMatch = result.match(/IMAGE_START(.+?)IMAGE_END/);
if (imageMatch) {
const imageData = imageMatch[1];
chartImage.src = 'data:image/png;base64,' + imageData;
chartImage.style.display = 'block';
// Remove the image data from the result before showing the table
tableOutput.innerHTML = result.replace(/IMAGE_START(.+?)IMAGE_END/, '').trim();
} else {
chartImage.style.display = 'none';
tableOutput.innerHTML = result.trim();
}
};
});
}
loadPyodideAndRun();
Njengesibonelo esedlule, ungaqhuba lokhu okulandelayo. Dala wonke amafayela amathathu bese uwafaka kwisikhombi esifanayo ohlelweni lwakho lwasekhaya. Kulolo mkhombandlela, kwi-terminal yomyalo, thayipha okulandelayo,
$ python -m http.server 8000
Manje, esipheqululini sakho, thayipha le URL kuyo.
Ekuqaleni, isikrini sakho kufanele sibukeke kanjena,

Chofoza ku- Choose File Inkinobho bese ukhetha ifayela ledatha olidalele ukufaka kudeshibhodi yakho. Ngemuva kwalokho, khetha i-metric efanelekile kusuka ku Select Sales Metric Uhlu Okwehlile bese uqhafaza Analyze data inkinobho. Kuya ngokuthi yiziphi izinketho okhetha ukuzibonisa, kufanele ubone into enjengalesi esikrinini sakho.

Ukubeka kafushane
Kulesi sihloko, ngichaze ukuthi ngisebenzisa kanjani i-pyodide futhi websangumameko, singasebenzisa izinhlelo zePython ngaphakathi kweziphequluli zethu futhi sikhombise izibonelo eziningana ezibonisa lokhu. Ngikhulume ngendima kaWebASKY njengethagethi lokuhlanganiswa okuphathekayo, eliphakeme lokusebenza elinempilo edelela amakhono wesiphequluli nokuthi lokhu kutholwa kanjani ku-Python Ecosystem usebenzisa umtapo wezincwadi we-Pythoni wesithathu usebenzisa i-Pylodide ye-Pythoni yesithathu usebenzisa i-Pylodide ye-Pythoni yesithathu.
Ukubonisa amandla nokuguquguquka kwe-Pyodide, nganikeza izibonelo eziningana zokusetshenziswa kwazo, kufaka phakathi: -
- "Sawubona, umhlaba!" Isibonelo.
- Ukushayela imisebenzi yePython kusuka ku-JavaScript.
- Isebenzisa inuncer for izinombolo.
- Kwenziwa okubonakalayo nge-matplotlib.
- Ukugijima ikhodi ye-Python esezingeni eliphakeme kumsebenzi wewebhu.
- Ideshibhodi yedatha
Ngiyethemba ukuthi ngemuva kokufunda le ndatshana, uzobona, qaphela ukuthi kunamandla kangakanani ukuhlanganiswa kwePython, Pyodide, kanye nesiphequluli sewebhu.



