<p>Windows์˜ Python 3.5์—์„œ virtualenv๊ฐ€ ์‹คํŒจํ•จ</p>

์— ๋งŒ๋“  2015๋…„ 09์›” 15์ผ  ยท  16์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pypa/virtualenv

  1. ๊ณต์‹ Windows ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ Python 3.5 ์„ค์น˜
  2. ๊ป์งˆ์„ ์–ป๋‹ค
  3. python -m surepip (์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ค ์ด์œ ๋กœ pip๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์—)
  4. python -m pip install virtualenv(๋ฒ„์ „ 13.1.2 ๊ฐ€์ ธ์˜ค๊ธฐ)
  5. ํŒŒ์ด์ฌ -m ๊ฐ€์ƒ ํ™˜๊ฒฝ ํ™˜๊ฒฝ

๋‚˜๋Š” ์˜ˆ์ƒํ•œ๋‹ค: ./env์˜ virtualenv

"์ปดํ“จํ„ฐ์— VCRUNTIME140.dll์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."๋ผ๋Š” GUI ์˜ค๋ฅ˜ ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ virtualenv๋Š” vcruntime140.dll์„ Python 3.5๊ฐ€ Windows์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์ƒˆ virtualenv์— ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์›๋ž˜ http://bugs.python.org/issue25119์— ์ œ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

์œ ์‚ฌํ•˜๊ฒŒ, python3.dll ๋ฅผ ๋ณต์‚ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” PyQt5์™€ ๊ฐ™์€ ์ผ๋ถ€ ํ™•์žฅ ๋ชจ๋“ˆ์ด ImportError: DLL load failed: The specified module could not be found. ์‹คํŒจํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

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

@zooba ์ตœ๊ณ ์˜ virtualenv๊ฐ€ ์—ฌ๊ธฐ์—์„œ ์ง„ํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์กฐ์–ธ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ชจ๋“  3.5 virtualenv์— dll์„ ๋ณต์‚ฌํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋„ค, ๊ทธ๋Ÿด ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows์—์„œ๋Š” sys.prefix ๋ฐ join(sys.prefix, 'DLLs') ์—์„œ ๋ชจ๋“  vcruntime*.dll ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์–ด๋Š ์‹œ์ ์—์„œ ์šฐ๋ฆฌ๋Š” ์ด์ „ ํ™•์žฅ ๋ชจ๋“ˆ๊ณผ์˜ ์—ญํ˜ธํ™˜์„ ์œ„ํ•ด vcruntime140.dll ๋ฅผ DLL๋กœ ์ด๋™ํ•  ๊ฒƒ์ด์ง€๋งŒ ์–ธ์ œ๊ฐ€ ๋ ์ง€๋Š” ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(์•„์ง ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์— ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ํ™•์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

https://pypi.python.org/pypi/virtualenv-rewrite ์—์„œ๋„ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, virtualenv-rewrite๋Š” Python 3.5์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. (์ €๋Š” ์–ผ๋งˆ ์ „์— virtualenv-rewrite 14.1.0์„ ํ…Œ์ŠคํŠธํ–ˆ์ง€๋งŒ Jenkins์—์„œ๋Š” ์—ฌ์ „ํžˆ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.)

Windows์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ ์„ค์ •์ด ์‹ค์ œ๋กœ ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— dll์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ์ฐฝ์— python 2.7๊ณผ 3.5๊ฐ€ ์žˆ๊ณ (๋‘˜ ๋‹ค ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ์„ค์น˜๋จ) ๋‹ค์Œ ๋ช…๋ น์ด ๋ชจ๋‘ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

> virtualenv --python="C:\Python35\python.exe" env

(with virtualenvwrapper) > mkvirtualenv --python="C:\Python35\python.exe" env

> C:\Python35\Scripts\virtualenv-3.4.exe  --python="C:\Python35\python.exe" env

virtualenv v13.1.2๊ฐ€ ์žˆ๋Š” Windows 10์—์„œ Python 3.5.1๋กœ ์ด ๋ฒ„๊ทธ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

Btw, ์ž‘๋™ํ•˜๋ ค๋ฉด 3.4๋กœ ๋˜๋Œ๋ ค์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

virtualenv 15.0.3์ด ์„ค์น˜๋œ Windows 10์—์„œ Python 3.5.2๋กœ ์ด๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

virtualenv 15.0.3์ด ์žˆ๋Š” Windows 8.1์—์„œ Python 3.5.2๋กœ ์ด๊ฒƒ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

virtualenv 15.0.3์ด ์„ค์น˜๋œ Windows 7์—์„œ Python 3.5.2์˜ ๋ฒ„๊ทธ ํ™•์ธ

์•Œ์•˜์–ด. ๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. https://sourceforge.net/projects/pywin32/ ์—์„œ "pywin32"๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ ํ›„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. pywin32์—๋Š” Windows์šฉ python ํ™•์žฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
Python ๋ฒ„์ „์— ๋งž๊ฒŒ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.
์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์„ ์–ป์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค(Python ๋ฒ„์ „, 32๋น„ํŠธ/64๋น„ํŠธ ๋“ฑ๊ณผ ์ผ์น˜).
๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Windows 7 Python 3.5.2์˜ ๊ฒฝ์šฐ http://www.opendll.com/index.php?file-download=vcruntime140.dll&arch=64Bit&version=14.0.22816.0&dsc=Microsoft%AE-C-Runtime-Library# ๋ฅผ C๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. \ ์œˆ๋„์šฐ

๊ณ ๋งˆ์›Œ์š”, ์—์ด๋ฏธํ‹ฐํ”Œ! BTW๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ž„์˜์˜ ์ธํ„ฐ๋„ท ์‚ฌ์ดํŠธ์—์„œ DLL ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. c:/Python3.5/(๋˜๋Š” Python 3.5๋ฅผ ์„ค์น˜ํ•œ ๋ชจ๋“  ์œ„์น˜)์—์„œ %PATH%์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋ณต์‚ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์œ ์‚ฌํ•˜๊ฒŒ, python3.dll ๋ฅผ ๋ณต์‚ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” PyQt5์™€ ๊ฐ™์€ ์ผ๋ถ€ ํ™•์žฅ ๋ชจ๋“ˆ์ด ImportError: DLL load failed: The specified module could not be found. ์‹คํŒจํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • Python ๋ฒ„์ „์„ ํฌํ•จํ•˜๋„๋ก ๊ฒฝ๋กœ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ:

set "PATH=C:\Program Files (x86)\Python36-32;%PATH%"

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ์˜ ํ™œ๋™์ด ์—†์œผ๋ฉด ํ์‡„๋ฉ๋‹ˆ๋‹ค. ๊ณ„์† ์—ด์–ด๋‘๊ณ  ์‹ถ๋‹ค๋ฉด ๋Œ“๊ธ€์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

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