Проверьте нашу онлайн -демонстрацию, работающую на Webassembly.
Клальности требует последней стабильной версии ржавчины (например, 1.67.1, 7 февраля 2023 года). Если в настоящее время в вашей системе установлена ржавчина, вы можете сделать это, следуя инструкциям на rustup.rs.
Чтобы проверить версию Rust, вы в настоящее время работаете, используйте rustc --version
. Если вы хотите обновить, rustup update stable
обновит вашу Rust -установку до самого последнего стабильного выпуска.
Чтобы построить коргистка локально, сначала клонируйте исходный код:
git clone https://github.com/RustPython/RustPython
Затем вы можете переодеться в каталог yrecpython и запустить демонстрацию (примечание: --release
для предотвращения переполнения стека в Windows):
$ cd RustPython
$ cargo run --release demo_closures.py
Hello, RustPython !
Или используйте интерактивную оболочку:
$ cargo run --release
Welcome to rustpython
>>>>> 2+2
4
ПРИМЕЧАНИЕ. Для пользователей Windows установите переменную среды RUSTPYTHONPATH
в качестве пути Lib
в каталоге проектов. (EG, когда каталог yreppython - это C:RustPython
, установить RUSTPYTHONPATH
как C:RustPythonLib
)
Вы также можете установить и запустить rugpython со следующим:
$ cargo install --git https://github.com/RustPython/RustPython
$ rustpython
Welcome to the magnificent Rust Python interpreter
>>>>>
Если вы хотите сделать HTTPS -запросы, вы можете включить функцию ssl
, которая также позволяет установить диспетчер пакетов pip
. Обратите внимание, что в Windows вам может потребоваться установить OpenSSL, или вместо этого вы можете включить функцию ssl-vendor
, которая компилирует для вас OpenSSL, но требует компилятора C, Perl и make
. OpenSSL версия 3 ожидается и протестирована в CI. Старые версии могут не работать.
После того, как вы установили recpython с поддержкой SSL, вы можете установить PIP, работая:
cargo install --git https://github.com/RustPython/RustPython --features ssl
rustpython --install-pip
Вы также можете установить Suppython через менеджер пакетов conda
, хотя это официально не поддерживается и может быть установлен:
conda install rustpython -c conda-forge
rustpython
Вы можете собрать yrecpython в автономный модуль Webassembly wasi, чтобы он мог работать где угодно.
Строить
cargo build --target wasm32-wasi --no-default-features --features freeze-stdlib,stdlib --release
Бегите Васмер
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 asi с помощью:
cargo build --release --target wasm32-wasi --features= " freeze-stdlib "
Примечание. Мы используем
freeze-stdlib
, чтобы включить стандартную библиотеку в двоичный файл. Вы также должны запустить после того, какrustup target add wasm32-wasi
.
У Suprython есть очень экспериментальный компилятор 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
могут оказывать некоторую помощь.
Глаппиттон находится в разработке, и хотя интерпретатор, безусловно, может использоваться в интересных вариантах использования, таких как запуск Python в WASM и внедрение в проект ржавчины, отметьте, что yruppython не полностью готов к производству.
Вклад более чем приветствуется! Смотрите наш раздел вклада для получения дополнительной информации об этом.
Проверьте эти беседы на конференциях:
Несмотря на то, что yrecpython - довольно молодой проект, несколько человек использовали его для создания крутых проектов:
В настоящее время вместе с другими областями проекта документация все еще находится на ранней стадии.
Вы можете прочитать онлайн -документацию для последнего выпуска или руководства пользователя.
Вы также можете генерировать документацию локально, работая:
cargo doc # Including documentation for all dependencies
cargo doc --no-deps --all # Excluding all dependencies
Файлы с документацией HTML можно найти в каталоге target/doc
, или вы можете добавить --open
к предыдущим командам, чтобы документация открылась автоматически в вашем браузере по умолчанию.
Для обзора высокого уровня компонентов см. В архитектурном документе.
Взносы более чем приветствуются, и во многих случаях мы рады направить участников через PRS или по Discord. Пожалуйста, обратитесь к Руководству по разработке, а также для советов по разработке.
Имея это в виду, обратите внимание, что этот проект поддерживается добровольцами, некоторые из лучших способов начать работу ниже:
Большинство задач перечислены в трекере выпуска. Проверьте проблемы с хорошей первой проблемой, если вы хотите начать кодирование.
Чтобы повысить совместимость с CPYTHON, постарайтесь увеличить охват UNITTEST, проверив эту статью: как внести свой вклад в yruppython с помощью CPYTHON Unittest
Другой подход заключается в проверке исходного кода: встроенные функции и методы объектов часто являются самым простым и простым способом внесения вклад.
Вы также можете просто запустить ./whats_left.py
, чтобы помочь в поиске любого непредумышленного метода.
Смотрите этот док
Общайтесь с нами на Discord.
Наш кодекс поведения можно найти здесь.
Первоначальная работа была основана на Windelbouwman/rspython и Shallyu/yreppython
Это некоторые полезные ссылки на связанные проекты:
Этот проект лицензирован по лицензии MIT. Пожалуйста, смотрите файл лицензии для получения более подробной информации.
Логотип проекта лицензирован по лицензии CC-BY 4.0. Пожалуйста, смотрите файл лицензии Logo для получения более подробной информации.