Httpie: ์œˆ๋„์šฐ ํŒจํ‚ค์ง€

์— ๋งŒ๋“  2012๋…„ 07์›” 02์ผ  ยท  17์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: httpie/httpie

๋ˆ„๊ตฐ๊ฐ€ py2exe ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ httpie์šฉ msi ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

python๊ณผ pip๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ python์ด ์„ค์น˜๋˜์–ด ์ œ๊ณต๋˜์ง€ ์•Š๋Š” Windows์—์„œ httpie๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ํฐ ๋ฒˆ๊ฑฐ๋กœ์›€์ž…๋‹ˆ๋‹ค.

feature planned windows

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Twitter์˜ ๋ˆ„๊ตฐ๊ฐ€๋Š” Windows์šฉ ๊ดœ์ฐฎ์€ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ฒ˜๋Ÿผ ๋ณด์ด๋Š” Chocolatey ๋„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด ๊ฐ„๋‹จํ•œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ HTTPie๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cinst httpie -source python

๋ชจ๋“  17 ๋Œ“๊ธ€

Scott Hanselman์€ Windows์— ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋‹จ๊ณ„๋ณ„ ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

http://www.hanselman.com/blog/InstallingHTTPIEHTTPForHumansOnWindowsGreatForASPNETWebAPIAndRESTfulJSONServices.aspx

@mercury2269 ์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์ข…๋ฅ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ํŒŒ์ด์ฌ์„ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ ๋„ Httpie๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ํŒŒ์ด์ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹ˆ๋ฉฐ Windows์— pip๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์€ ํŒŒ์ด์ฌ ๊ฐœ๋ฐœ์ž๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ˆ„๊ตฌ๋„ ๊ฒช์„ ์ˆ˜ ์—†๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ž…๋‹ˆ๋‹ค.

Twitter์˜ ๋ˆ„๊ตฐ๊ฐ€๋Š” Windows์šฉ ๊ดœ์ฐฎ์€ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ฒ˜๋Ÿผ ๋ณด์ด๋Š” Chocolatey ๋„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด ๊ฐ„๋‹จํ•œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ HTTPie๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cinst httpie -source python

๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์น˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋” ์ข‹์ง€ ์•Š์„๊นŒ์š”?

ํŽธ์ง‘ : py2exe ๋ฐ Inno Setup์„ ์‚ฌ์šฉํ•˜์—ฌ Windows ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Python์„ ํฌํ•จํ•˜๋Š” ๋…๋ฆฝํ˜• ํŒจํ‚ค์ง€๋กœ httpie๋ฅผ ํŒจํ‚ค์ง•ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ PyInstaller ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ๋Š” ๋งค์šฐ ํ™œ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

AppVeyor๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ httpie CI์˜ ์ผ๋ถ€๋กœ Windows ํŒจํ‚ค์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

hpttpie๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด PowerShell ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๋ฏธ PR์„ ํ‘ธ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Windows ์‹œ์Šคํ…œ์— ์„ค์น˜ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.

aria2c.exe, curl.exe, wget.exe ์™€ ๊ฐ™์€ Windows์šฉ ๋…๋ฆฝ ์‹คํ–‰ํ˜• .exe ์•„์ง ์—†์Šต๋‹ˆ๊นŒ?

์˜ˆ, ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์—†์ด Windows ์‹œ์Šคํ…œ์— httpie๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์€ ์ •๋ง ๊ณ ํ†ต์Šค๋Ÿฌ์šด ์ผ์ด๋ฉฐ ์ด์™€ ๊ฐ™์€ ํŒจํ‚ค์ง€๋„ ์ข‹์•„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ๋‚ด ๊ฐœ์ธ ๊ธฐ์ˆ ์€ ์•„์ง ์Šค์Šค๋กœ ๋งŒ๋“ค๊ธฐ์— ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...

Windows ํŒจํ‚ค์ง€๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฌธ์ œ๋Š” 2012๋…„์— ์ƒ์„ฑ๋˜์—ˆ์ง€๋งŒ ์ง€๊ธˆ์€ 2017๋…„์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

scoop install httpie ๋˜๋Š” choco install httpie ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Scoop๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. Python์ด ์ข…์†์„ฑ์ด๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ Python ์Šคํฌ๋ฆฝํŠธ์ด๋ฉฐ Python์ด ์š”๊ตฌ ์‚ฌํ•ญ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ธฐ๊บผ์ด Chocolatey์šฉ ํŒจํ‚ค์ง€๋ฅผ ์ƒ์„ฑ/์œ ์ง€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—ฌ์ „ํžˆ ํ•„์š”ํ•œ์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

Python 3.7.6 ๋ฐ PyInstaller 3.6์„ ์‚ฌ์šฉํ•˜์—ฌ mcr.microsoft.com/windows/servercore:ltsc2019 Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๋…๋ฆฝ ์‹คํ–‰ํ˜• http.exe ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Docker Desktop 2.1.0.5๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์–ด๋“ค์ž…๋‹ˆ๋‹ค...

Docker ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€:

mkdir c:\temp\outside
docker run -t -i --mount type=bind,src=c:\temp\outside,dst=c:\inside -w c:\ mcr.microsoft.com/windows/servercore:ltsc2019

์ด์ œ Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์žˆ์Šต๋‹ˆ๋‹ค.

curl -L https://aka.ms/nugetclidl -o nuget.exe
set PATH=%PATH%;c:\python\tools;c:\python\tools\scripts;c:\GitForWindows\tools\cmd
nuget install GitForWindows -ExcludeVersion
set PYVER=3.7.6
nuget install python -ExcludeVersion -Version %PYVER% -OutputDirectory .
python -m pip install --no-warn-script-location PyInstaller
python -m pip install pywin32
git clone https://github.com/jakubroztocil/httpie.git
cd httpie
python -m pip install -r requirements-dev.txt
python setup.py build
cd build\lib\httpie
echo sys.exit(main())>> core.py
pyinstaller -F --noupx -n http.exe core.py
cd dist
copy http.exe c:\inside
exit

์ด์ œ Docker ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€์— ์žˆ์Šต๋‹ˆ๋‹ค.

dir c:\temp\outside\http.exe

๊ฒฐ๊ณผ http.exe ์˜ ํฌ๊ธฐ๋Š” 11,605,534 ์ž…๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ ์ด ์ ˆ์ฐจ๋ฅผ ํ™•์ธํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ ํ•ด์š”.

ํŽธ์ง‘ํ•˜๋‹ค:

๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ http.exe ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๋‹ค์Œ์—์„œ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/jftuga/HTTPie-Windows

์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๊ฒฝ๊ณ  ์„น์…˜์„ ์ฝ์œผ์‹ญ์‹œ์˜ค.

@jftuga , ์ปดํŒŒ์ผ๋Ÿฌ ์—†์ด ๋‹จ์ˆœํ•œ Windows ์‚ฌ์šฉ์ž์™€ http.exe ๋ฅผ ๊ณต์œ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@sergeevabc

https://github.com/jftuga/HTTPie-Windows

์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๊ฒฝ๊ณ  ์„น์…˜์„ ์ฝ์œผ์‹ญ์‹œ์˜ค.

@jftuga ๋Š” ์ตœ์†Œํ•œ ๊ธฐ๋ณธ ์ž‘์—…์œผ๋กœ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ Scoop-Python ๋ฒ„ํ‚ท์„ ํ™•์ธ ํ–ˆ์Šต๋‹ˆ๊นŒ? ํœด๋Œ€์šฉ์ด ์•„๋‹Œ ์–‘๋™์ด์˜ ๊ด€๋ฆฌ์ž์— ์˜ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

scoop bucket add python https://github.com/TheRandomLabs/Scoop-Python.git
scoop install httpie-py

๋ชจ๋“  Python ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ(๊ธ€๋กœ๋ฒŒ ์„ค์น˜์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ์—…๋ฐ์ดํŠธ, ์‚ฌ์šฉ์ž ์„ค์น˜์˜ ๊ฒฝ์šฐ ์ฃผ์š” ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ) ํ›„์— ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” migrate-python-packages ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰