Asciinema: ์ฐฝ

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

์ด์ œ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ๊ธฐ ์ „์— Windows ํ„ฐ๋ฏธ๋„์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Windows์˜ ์ƒˆ๋กœ์šด OFFICAL ํ„ฐ๋ฏธ๋„์€ ์ ์ ˆํ•œ PTY๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Windows์—์„œ ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

pip๋ฅผ ํ†ตํ•ด Windows cmd์— ์„ค์น˜ํ–ˆ์ง€๋งŒ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ๋ฌธ์ œ๋Š” No module named 'fcntl' ์ž…๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ OS ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

D:\Downloads>pip install asciinema
Collecting asciinema
  Downloading https://files.pythonhosted.org/packages/a7/71/771c859795e02c71c187546f34f7535487b97425bc1dad1e5f6ad2651357/asciinema-2.0.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\LIUD~1.H\AppData\Local\Temp\pip-install-yb29pspy\asciinema\setup.py", line 1, in <module>
        import asciinema
      File "C:\Users\LIUD~1.H\AppData\Local\Temp\pip-install-yb29pspy\asciinema\asciinema\__init__.py", line 15, in <module>
        import asciinema.pty as pty
      File "C:\Users\LIUD~1.H\AppData\Local\Temp\pip-install-yb29pspy\asciinema\asciinema\pty.py", line 3, in <module>          import fcntl
    ModuleNotFoundError: No module named 'fcntl'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\LIUD~1.H\AppData\Local\Temp\pip-install-yb29pspy\asciinema\

D:\Downloads>

์ฐธ์กฐ:

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

pip๋ฅผ ํ†ตํ•ด Windows cmd์— ์„ค์น˜ํ–ˆ์ง€๋งŒ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ๋ฌธ์ œ๋Š” No module named 'fcntl' ์ž…๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ OS ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

D:\Downloads>pip install asciinema
Collecting asciinema
  Downloading https://files.pythonhosted.org/packages/a7/71/771c859795e02c71c187546f34f7535487b97425bc1dad1e5f6ad2651357/asciinema-2.0.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\LIUD~1.H\AppData\Local\Temp\pip-install-yb29pspy\asciinema\setup.py", line 1, in <module>
        import asciinema
      File "C:\Users\LIUD~1.H\AppData\Local\Temp\pip-install-yb29pspy\asciinema\asciinema\__init__.py", line 15, in <module>
        import asciinema.pty as pty
      File "C:\Users\LIUD~1.H\AppData\Local\Temp\pip-install-yb29pspy\asciinema\asciinema\pty.py", line 3, in <module>          import fcntl
    ModuleNotFoundError: No module named 'fcntl'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\LIUD~1.H\AppData\Local\Temp\pip-install-yb29pspy\asciinema\

D:\Downloads>

์ฐธ์กฐ:

ํ˜„์žฌ fcntl์€ ์–ธ๊ธ‰ํ•œ OS์—์„œ asciinema๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ•˜๋‚˜์˜ (์œ ์ผํ•œ?) ์žฅ์• ๋ฌผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

fcntl ๊ฒ€์ƒ‰ ์ค‘ ์†Œ์Šค ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๊ณณ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

https://github.com/asciinema/asciinema/blob/c94e898ec14c35db294974d4c3370fb154eba298/asciinema/pty.py#L36 -L43
๊ทธ๋ฆฌ๊ณ 
https://github.com/asciinema/asciinema/blob/c94e898ec14c35db294974d4c3370fb154eba298/asciinema/pty.py#L150 -L153

36ํ–‰์—์„œ๋Š” ํ„ฐ๋ฏธ๋„ ์ฐฝ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ 24x80 ์น˜์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฒ„ํผ ํฌ๊ธฐ๋Š” 43ํ–‰์— ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ๋Œ€์ฒด PTY์—์„œ ์ง€์›๋˜์–ด์•ผ ํ•˜๋ฉฐ ์‰ฝ๊ฒŒ ๊ต์ฒด๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋” ์‹ฌ๊ฐํ•œ ๋ถ€๋ถ„์€ 150ํ–‰์— ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฐฐ๊ด€์ด NonBlock ๋ชจ๋“œ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ stackoverflow์— ๋Œ€ํ•œ ์ด ๊ฒŒ์‹œ๋ฌผ์— ๋”ฐ๋ฅด๋ฉด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค: https://stackoverflow.com/q/34504970.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ธฐ๊บผ์ด ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์ฐฝ๋ฌธ์„ ์ง€์› ์‹ถ์–ด์š”!

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