ตรวจสอบการสาธิตออนไลน์ของเราที่ทำงานบน WebAssembly
Rustpython ต้องใช้ Rust รุ่นล่าสุดที่มั่นคง (เช่น 1.67.1 ณ วันที่ 7 กุมภาพันธ์ 2023) หากคุณยังไม่ได้ติดตั้ง Rust ในระบบของคุณคุณสามารถทำได้โดยทำตามคำแนะนำที่ Rustup.rs
หากต้องการตรวจสอบเวอร์ชันของ Rust ที่คุณกำลังทำงานอยู่ให้ใช้ rustc --version
หากคุณต้องการอัปเดต rustup update stable
จะอัปเดตการติดตั้ง Rust ของคุณเป็นรุ่นที่มีเสถียรภาพล่าสุด
ในการสร้าง Rustpython ในพื้นที่ก่อนอื่นให้โคลนซอร์สโค้ด:
git clone https://github.com/RustPython/RustPython
จากนั้นคุณสามารถเปลี่ยนเป็นไดเรกทอรี Rustpython และเรียกใช้การสาธิต (หมายเหตุ: --release
จำเป็นต้องมีการเปิดตัวเพื่อป้องกันการล้นสแต็กบน Windows):
$ cd RustPython
$ cargo run --release demo_closures.py
Hello, RustPython !
หรือใช้เปลือกแบบโต้ตอบ:
$ cargo run --release
Welcome to rustpython
>>>>> 2+2
4
หมายเหตุ: สำหรับผู้ใช้ Windows โปรดตั้งค่าตัวแปรสภาพแวดล้อม RUSTPYTHONPATH
เป็นเส้นทาง Lib
ในไดเรกทอรีโครงการ (เช่นเมื่อไดเรกทอรี Rustpython คือ C:RustPython
ตั้งค่า RUSTPYTHONPATH
เป็น C:RustPythonLib
)
นอกจากนี้คุณยังสามารถติดตั้งและเรียกใช้ Rustpython ได้ด้วยสิ่งต่อไปนี้:
$ cargo install --git https://github.com/RustPython/RustPython
$ rustpython
Welcome to the magnificent Rust Python interpreter
>>>>>
หากคุณต้องการทำคำขอ HTTPS คุณสามารถเปิดใช้งานคุณสมบัติ ssl
ซึ่งยังช่วยให้คุณต้องติดตั้ง pip
Package Manager โปรดทราบว่าบน Windows คุณอาจต้องติดตั้ง OpenSSL หรือคุณสามารถเปิดใช้งานคุณสมบัติ ssl-vendor
แทนซึ่งรวบรวม openSSL สำหรับคุณ แต่ต้องใช้คอมไพเลอร์ c, perl และ make
OpenSSL เวอร์ชัน 3 คาดว่าและทดสอบใน CI รุ่นเก่าอาจไม่ทำงาน
เมื่อคุณติดตั้ง Rustpython ด้วยการรองรับ SSL คุณสามารถติดตั้ง PIP ได้โดยรัน:
cargo install --git https://github.com/RustPython/RustPython --features ssl
rustpython --install-pip
นอกจากนี้คุณยังสามารถติดตั้ง Rustpython ผ่าน conda
Package Manager แม้ว่าจะไม่ได้รับการสนับสนุนอย่างเป็นทางการและอาจล้าสมัย:
conda install rustpython -c conda-forge
rustpython
คุณสามารถรวบรวม Rustpython ไปยังโมดูล WebAssembly แบบสแตนด์อโลนเพื่อให้สามารถทำงานได้ทุกที่
สร้าง
cargo build --target wasm32-wasi --no-default-features --features freeze-stdlib,stdlib --release
ดำเนินการโดย Wasmer
wasmer run --dir ` pwd ` -- target/wasm32-wasi/release/rustpython.wasm ` pwd ` /extra_tests/snippets/stdlib_random.py
ดำเนินการโดย WAPM
$ wapm install rustpython
$ wapm run rustpython
>>>>> 2+2
4
คุณสามารถสร้างไฟล์ WebAssembly WASI ด้วย:
cargo build --release --target wasm32-wasi --features= " freeze-stdlib "
หมายเหตุ: เราใช้
freeze-stdlib
เพื่อรวมไลบรารีมาตรฐานภายในไบนารี คุณต้องเรียกใช้เมื่อrustup target add wasm32-wasi
Rustpython มีคอมไพเลอร์ JIT ทดลอง ที่รวบรวมฟังก์ชั่น Python เป็นรหัสดั้งเดิม
โดยค่าเริ่มต้นคอมไพเลอร์ JIT ไม่ได้เปิดใช้งานจะเปิดใช้งานกับคุณสมบัติ jit
Cargo
cargo run --features jit
สิ่งนี้ต้องใช้ Autoconf, Automake, Libtool และ Clang ที่จะติดตั้ง
ในการรวบรวมฟังก์ชั่นโทร __jit__()
def foo ():
a = 5
return 10 + a
foo . __jit__ () # this will compile foo to native code and subsequent calls will execute that native code
assert foo () == 15
สนใจที่จะเปิดเผยสคริปต์ Python ในแอปพลิเคชันที่เขียนด้วย Rust บางทีอาจอนุญาตให้มีการปรับแต่งตรรกะอย่างรวดเร็วซึ่งเวลารวบรวมของ Rust จะถูกยับยั้ง? จากนั้น examples/hello_embed.rs
และ examples/mini_repl.rs
อาจเป็นความช่วยเหลือบางอย่าง
Rustpython กำลังพัฒนาและในขณะที่ล่ามสามารถใช้ในกรณีการใช้งานที่น่าสนใจเช่นการใช้ Python ใน WASM และฝังลงในโครงการสนิมโปรดทราบว่า Rustpython นั้นไม่พร้อมการผลิตทั้งหมด
การบริจาคเป็นมากกว่าการต้อนรับ! ดูส่วนการบริจาคของเราสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้
ชำระเงินการพูดคุยเกี่ยวกับการประชุม:
แม้ว่า Rustpython จะเป็นโครงการที่ค่อนข้างเล็ก แต่มีเพียงไม่กี่คนที่ใช้มันเพื่อทำโครงการที่ยอดเยี่ยม:
ขณะนี้พร้อมกับพื้นที่อื่น ๆ ของโครงการเอกสารยังคงอยู่ในช่วงแรก
คุณสามารถอ่านเอกสารออนไลน์สำหรับรุ่นล่าสุดหรือคู่มือผู้ใช้
นอกจากนี้คุณยังสามารถสร้างเอกสารในพื้นที่โดยใช้งาน:
cargo doc # Including documentation for all dependencies
cargo doc --no-deps --all # Excluding all dependencies
เอกสารเอกสาร HTML สามารถพบได้ในไดเรกทอรี target/doc
หรือคุณสามารถผนวก --open
คำสั่งก่อนหน้าเพื่อให้เอกสารเปิดโดยอัตโนมัติบนเบราว์เซอร์เริ่มต้นของคุณ
สำหรับภาพรวมระดับสูงของส่วนประกอบดูเอกสารสถาปัตยกรรม
การมีส่วนร่วมเป็นมากกว่าการต้อนรับและในหลายกรณีเรายินดีที่จะแนะนำผู้สนับสนุนผ่าน PRS หรือใน Discord โปรดดูคู่มือการพัฒนารวมถึงเคล็ดลับเกี่ยวกับการพัฒนา
โดยที่ในใจโปรดทราบว่าโครงการนี้ได้รับการดูแลโดยอาสาสมัครซึ่งเป็นวิธีที่ดีที่สุดในการเริ่มต้นอยู่ด้านล่าง:
งานส่วนใหญ่มีการระบุไว้ในตัวติดตามปัญหา ตรวจสอบปัญหาที่มีป้ายกำกับที่ดีหากคุณต้องการเริ่มเขียนโค้ด
เพื่อเพิ่มความเข้ากันได้ของ cpython ให้พยายามเพิ่มความครอบคลุมที่ไม่ได้ใช้
อีกวิธีหนึ่งคือการชำระเงินซอร์สโค้ด: ฟังก์ชั่นในตัวและวิธีการวัตถุมักจะเป็นวิธีที่ง่ายและง่ายที่สุดในการมีส่วนร่วม
นอกจากนี้คุณยังสามารถเรียกใช้ ./whats_left.py
เพื่อช่วยในการค้นหาวิธีการที่ไม่ได้ใช้งาน
ดูเอกสารนี้
แชทกับเราใน Discord
จรรยาบรรณของเราสามารถพบได้ที่นี่
งานเริ่มต้นขึ้นอยู่กับ Windelbouwman/rspython และ shingyu/rustpython
นี่คือลิงค์ที่มีประโยชน์ไปยังโครงการที่เกี่ยวข้อง:
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT โปรดดูไฟล์ใบอนุญาตสำหรับรายละเอียดเพิ่มเติม
โลโก้โครงการได้รับใบอนุญาตภายใต้ใบอนุญาต CC-by-4.0 โปรดดูไฟล์ License-Logo สำหรับรายละเอียดเพิ่มเติม