Skip to content

iosif2/python-rust-binding

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

python-rust-binding

์ด ๋ ˆํฌ๋Š” Rust๋กœ ์ž‘์„ฑํ•œ Python ํ™•์žฅ ๋ชจ๋“ˆ(netcheck)์„ maturin์œผ๋กœ ๋นŒ๋“œํ•˜๊ณ , ๋ณ„๋„์˜ Python ์•ฑ(py-project)์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์‹œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

๊ตฌ์„ฑ

python-rust-binding/
โ”œโ”€ netcheck/        # Rust โ†” Python ๋ฐ”์ธ๋”ฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (PyO3 + maturin)
โ”œโ”€ py-project/      # ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Python ์•ฑ (uv๋กœ ์˜์กด์„ฑ ๊ด€๋ฆฌ)
โ””โ”€ python-rust-binding.code-workspace

์š”๊ตฌ ์‚ฌํ•ญ

  • Rust (rustup)
  • Python 3.12+
  • maturin
  • uv (์„ ํƒ, py-project์—์„œ ์˜์กด์„ฑ ๊ด€๋ฆฌ์šฉ)

๋น ๋ฅธ ์‹œ์ž‘

1) Rust ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ ์„ค์น˜(Editable)

py-project๋Š” ๋กœ์ปฌ netcheck๋ฅผ ์†Œ์Šค ์˜์กด์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฃจํŠธ์—์„œ:

cd py-project
uv sync
  • py-project/pyproject.toml์˜ [tool.uv.sources] ์„ค์ •์œผ๋กœ ../netcheck๊ฐ€ editable๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
  • uv๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค๋ฉด pip๋กœ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค:
pip install -e ../netcheck

2) Python ์•ฑ ์‹คํ–‰

cd py-project
uv run python main.py

๋˜๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ์—์„œ:

python -m venv .venv
source .venv/bin/activate
pip install -e ../netcheck
python main.py

๊ฐœ๋ฐœ ํ๋ฆ„

  1. netcheck์—์„œ Rust ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •
  2. py-project์—์„œ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ โ†’ ํ™•์žฅ ๋ชจ๋“ˆ์ด ์ž๋™ ๋ฆฌ๋นŒ๋“œ๋˜์–ด ๋ฐ˜์˜(Editable)
  3. ํ•„์š” ์‹œ netcheck์—์„œ wheel ๋นŒ๋“œ
cd netcheck
maturin build --release  # target/wheels/*.whl ์ƒ์„ฑ

๋ฌธ์ œ ํ•ด๊ฒฐ

  • macOS์—์„œ arm64 ํƒ€๊ฒŸ๋กœ ๋นŒ๋“œ๋œ wheel์„ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด Python/๊ฐ€์ƒํ™˜๊ฒฝ๋„ ๋™์ผ ์•„ํ‚คํ…์ฒ˜์ธ์ง€ ํ™•์ธํ•˜์„ธ์š”.
  • uv sync ์˜ค๋ฅ˜ ์‹œ py-project/pyproject.toml์˜ [tool.uv.sources] ๊ฒฝ๋กœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•˜์„ธ์š”.
  • ์‹ฌ๋ณผ ๋กœ๋“œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ, ์ด์ „์— ์„ค์น˜๋œ ์˜ค๋ž˜๋œ wheel์ด ๋‚จ์•„์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pip uninstall netcheck ํ›„ ์žฌ์„ค์น˜ํ•˜์„ธ์š”.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published