/lib64
๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ํ๋ซํผ์์ --always-copy
๋ก virtualenv๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํด ๋ณด์
๋๋ค.
CentOS 7.6์์๋ ์์คํ
ํจํค์ง(python 2.7.5 , virtualenv 15.1.0 )์ SCL์ ํตํด ์ค์น๋ ํจํค์ง ๋ชจ๋์์ ๋์ผํ ์ผ์ด ๋ฐ์ํฉ๋๋ค.
๊ด๋ จ๋ ์ ์๋ ์ผ๋ถ ํฐ์ผ(#985, #1192, #3477, https://github.com/FPGAwars/icestudio/issues/244)๊ณผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ผ๋ก ์ถ์ ๋๋ ๋ณํฉ๋ pull ์์ฒญ(#1189)์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ์๋ชป๋ ์ผ์ด ์ผ์ด๋๊ณ ์๋ค๋ ์ธ์์ ๋ฐ์์ต๋๋ค.
SCL์ ์ฌ์ฉํ ์(Python 3.6.3 , virtualenv๋ ์๋์ผ๋ก 16.4.3 ์ผ๋ก ์
๊ทธ๋ ์ด๋๋จ).
์ฒซ ๋ฒ์งธ ์ค๋ฅ๋ virtualenv_support/pip-19.0.3-py2.py3-none-any.whl
์์ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
File "<scl_base>/lib64/python3.6/socket.py", line 49, in <module>
import _socket
ModuleNotFoundError: No module named '_socket'
์ปจํ ์คํธ์์ ๋ณด๋ ค๋ฉด ๋ก๊ทธ๋ฅผ ์๋ฃํ์ญ์์ค.
$ <scl_base>/bin/virtualenv --python <scl_base>/bin/python --always-copy --verbose TEST
Running virtualenv with interpreter <scl_base>/bin/python
Using base prefix '<scl_base>'
Creating <somedir>/TEST/lib/python3.6
Copying to <somedir>/TEST/lib64
Symlinking Python bootstrap modules
Copying to <somedir>/TEST/lib/python3.6/config-3.6m-x86_64-linux-gnu
Copying to <somedir>/TEST/lib/python3.6/lib-dynload
Copying to <somedir>/TEST/lib64/python3.6/os.py
Ignoring built-in bootstrap module: posix
Copying to <somedir>/TEST/lib64/python3.6/posixpath.py
Cannot import bootstrap module: nt
Copying to <somedir>/TEST/lib64/python3.6/ntpath.py
Copying to <somedir>/TEST/lib64/python3.6/genericpath.py
Copying to <somedir>/TEST/lib64/python3.6/fnmatch.py
Copying to <somedir>/TEST/lib64/python3.6/locale.py
Copying to <somedir>/TEST/lib64/python3.6/encodings
Copying to <somedir>/TEST/lib64/python3.6/codecs.py
Copying to <somedir>/TEST/lib64/python3.6/stat.py
Cannot import bootstrap module: UserDict
Creating parent directories for <somedir>/TEST/lib64/python3.6/lib-dynload
Copying to <somedir>/TEST/lib64/python3.6/lib-dynload/readline.cpython-36m-x86_64-linux-gnu.so
Cannot import bootstrap module: copy_reg
Copying to <somedir>/TEST/lib64/python3.6/types.py
Copying to <somedir>/TEST/lib64/python3.6/re.py
Cannot import bootstrap module: sre
Copying to <somedir>/TEST/lib64/python3.6/sre_parse.py
Copying to <somedir>/TEST/lib64/python3.6/sre_constants.py
Copying to <somedir>/TEST/lib64/python3.6/sre_compile.py
Copying to <somedir>/TEST/lib64/python3.6/lib-dynload/zlib.cpython-36m-x86_64-linux-gnu.so
Cannot import bootstrap module: _abcoll
Copying to <somedir>/TEST/lib64/python3.6/warnings.py
Copying to <somedir>/TEST/lib64/python3.6/linecache.py
Copying to <somedir>/TEST/lib64/python3.6/abc.py
Copying to <somedir>/TEST/lib64/python3.6/io.py
Copying to <somedir>/TEST/lib64/python3.6/_weakrefset.py
Copying to <somedir>/TEST/lib64/python3.6/copyreg.py
Copying to <somedir>/TEST/lib64/python3.6/tempfile.py
Copying to <somedir>/TEST/lib64/python3.6/random.py
Copying to <somedir>/TEST/lib64/python3.6/__future__.py
Copying to <somedir>/TEST/lib64/python3.6/collections
Copying to <somedir>/TEST/lib64/python3.6/keyword.py
Copying to <somedir>/TEST/lib64/python3.6/tarfile.py
Copying to <somedir>/TEST/lib64/python3.6/shutil.py
Copying to <somedir>/TEST/lib64/python3.6/struct.py
Copying to <somedir>/TEST/lib64/python3.6/copy.py
Copying to <somedir>/TEST/lib64/python3.6/tokenize.py
Copying to <somedir>/TEST/lib64/python3.6/token.py
Copying to <somedir>/TEST/lib64/python3.6/functools.py
Copying to <somedir>/TEST/lib64/python3.6/heapq.py
Copying to <somedir>/TEST/lib64/python3.6/bisect.py
Copying to <somedir>/TEST/lib64/python3.6/weakref.py
Copying to <somedir>/TEST/lib64/python3.6/reprlib.py
Copying to <somedir>/TEST/lib64/python3.6/base64.py
Copying to <somedir>/TEST/lib64/python3.6/_dummy_thread.py
Copying to <somedir>/TEST/lib64/python3.6/hashlib.py
Copying to <somedir>/TEST/lib64/python3.6/hmac.py
Copying to <somedir>/TEST/lib64/python3.6/imp.py
Copying to <somedir>/TEST/lib64/python3.6/importlib
Copying to <somedir>/TEST/lib64/python3.6/rlcompleter.py
Copying to <somedir>/TEST/lib64/python3.6/operator.py
Copying to <somedir>/TEST/lib64/python3.6/_collections_abc.py
Copying to <somedir>/TEST/lib64/python3.6/_bootlocale.py
Copying to <somedir>/TEST/lib64/python3.6/enum.py
No LICENSE.txt / LICENSE found in source
Creating <somedir>/TEST/lib/python3.6/site-packages
Writing <somedir>/TEST/lib64/python3.6/site.py
Writing <somedir>/TEST/lib64/python3.6/orig-prefix.txt
Writing <somedir>/TEST/lib64/python3.6/no-global-site-packages.txt
Creating <somedir>/TEST/bin
New python executable in <somedir>/TEST/bin/python
Changed mode of <somedir>/TEST/bin/python to 0o775
Copying to <somedir>/TEST/bin/python3
Copying to <somedir>/TEST/bin/python3.6
Testing executable with <somedir>/TEST/bin/python -c "import sys;out=sys.stdout;getattr(out, "buffer", out).write(sys.prefix.encode("utf-8"))"
Got sys.prefix result: '<somedir>/TEST'
Creating <somedir>/TEST/lib64/python3.6/distutils
Writing <somedir>/TEST/lib64/python3.6/distutils/__init__.py
Writing <somedir>/TEST/lib64/python3.6/distutils/distutils.cfg
Traceback (most recent call last):
File "<scl_base>/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "<scl_base>/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "<scl_base>/usr/lib/python3.6/site-packages/virtualenv_support/pip-19.0.3-py2.py3-none-any.whl/pip/__main__.py", line 16, in <module>
File "<scl_base>/usr/lib/python3.6/site-packages/virtualenv_support/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/__init__.py", line 19, in <module>
File "<scl_base>/usr/lib/python3.6/site-packages/virtualenv_support/pip-19.0.3-py2.py3-none-any.whl/pip/_vendor/urllib3/__init__.py", line 8, in <module>
File "<scl_base>/usr/lib/python3.6/site-packages/virtualenv_support/pip-19.0.3-py2.py3-none-any.whl/pip/_vendor/urllib3/connectionpool.py", line 7, in <module>
File "<scl_base>/lib64/python3.6/socket.py", line 49, in <module>
import _socket
ModuleNotFoundError: No module named '_socket'
Command <somedir>/TEST/bin/python -m pip config list had error code 1
Installing setuptools, pip, wheel...
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "<somedir>/TEST/lib64/python3.6/tempfile.py", line 45, in <module>
from random import Random as _Random
File "<somedir>/TEST/lib64/python3.6/random.py", line 42, in <module>
from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
ModuleNotFoundError: No module named 'math'
Complete output from command <somedir>/TEST/bin/python - setuptools pip wheel:
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "<somedir>/TEST/lib64/python3.6/tempfile.py", line 45, in <module>
from random import Random as _Random
File "<somedir>/TEST/lib64/python3.6/random.py", line 42, in <module>
from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
ModuleNotFoundError: No module named 'math'
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "<scl_base>/usr/lib/python3.6/site-packages/virtualenv.py", line 2567, in <module>
main()
File "<scl_base>/usr/lib/python3.6/site-packages/virtualenv.py", line 793, in main
symlink=options.symlink,
File "<scl_base>/usr/lib/python3.6/site-packages/virtualenv.py", line 1088, in create_environment
install_wheel(to_install, py_executable, search_dirs, download=download)
File "<scl_base>/usr/lib/python3.6/site-packages/virtualenv.py", line 935, in install_wheel
_install_wheel_with_search_dir(download, project_names, py_executable, search_dirs)
File "<scl_base>/usr/lib/python3.6/site-packages/virtualenv.py", line 1025, in _install_wheel_with_search_dir
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=script)
File "<scl_base>/usr/lib/python3.6/site-packages/virtualenv.py", line 886, in call_subprocess
raise OSError("Command {} failed with error code {}".format(cmd_desc, proc.returncode))
OSError: Command <somedir>/TEST/bin/python - setuptools pip wheel failed with error code 1
๋๋ ์ด์ด ์์ด ์ ๋ง ๋ง์ ์กฐํฉ(๋ง์ ๋ฒ์ , PATH ๋ฐ PYTHONPATH ์ฌ์ฉ)์ ์๋ํ์ต๋๋ค. ๋์์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์๋ ํ์ธ์, ์ด ๋ฒ๊ทธ๊ฐ ์ฌ๋ผ์ง๊ธฐ ์ ์ ์์ ์ด ํ์ํ ๋ฏธ๋ ์ฌ์ฉ์๋ฅผ ์ํ ์ ๋ณด์ ๋๋ค.
๋ด ํ๋ก์ ํธ๊ฐ python3 ์ ์์ผ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ฌธ์ ๋ฅผ ๋์ฒดํ์ต๋๋ค.
virtualenv --always-copy
~์ ํจ๊ป
python -m venv --copies
์ด๊ฒ์ CentOS 7.x ( ModuleNotFoundError: No module named '_socket'
๋ฐ ModuleNotFoundError: No module named 'math'
)์์ ์๋ํ๋ฉฐ ๋ณธ์ง์ ์ผ๋ก ๋ด ํ๋ก์ ํธ์์ ์คํ ๊ฐ๋ฅํ ์ ํ์ด์๋ virtualenv์์ ๋ฉ์ด์ก์ต๋๋ค.
๊ทธ๋์ ์ต์
์ด๋ฆ์ด ๋ฐ๋์๋์?
IMO, (์๋ฏธ๊ฐ ๊ฐ๋ค๋ฉด ์ต์ํ) (๊ธฐ์กด) --always-copy
long ์ต์
์ (new) --copies
์ต์
์ ๋ณ์นญ์ผ๋ก ์ง์๋์ด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์ด๋ ต์ง ์์์ผ ํฉ๋๋ค. optparse
์ต์
์์๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ฐ๊ฒฌ๋ ์ฒซ ๋ฒ์งธ ๊ธด ์ต์
๋ฌธ์์ด์ ๊ธฐ๋ณธ dest
๋ํด ์ทจํด์ง ๊ฒ์
๋๋ค.
์๋ ํ์ธ์ @tobiasherp ์ ๋๋ค. ์ ํํ๋ ์๋๋๋ค.
๋ ๊ฐ์ง ์ต์
์ ์๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ฐธ์กฐํฉ๋๋ค. --always-copy
๋ virtualenv
์ต์
์ด๊ณ --copies
๋ python -m venv
์
๋๋ค.
๋ด๊ฐ ํ ๊ฒ์ virtualenv๋ฅผ ์์ ํ ๋ฒ๋ฆฌ๊ณ python3๋ถํฐ ์์ํ์ฌ ์๋ฌด ๊ฒ๋ ์ค์นํ ํ์ ์์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ -m venv
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ฉฐ ์ ๊ฒฝ์ฐ์๋ ์ ์๋ํฉ๋๋ค.
์ ๊ฒ ์ด์
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "/tmp/tmp_6oib3xo/venv/lib64/python3.7/tempfile.py", line 45, in <module>
from random import Random as _Random
File "/tmp/tmp_6oib3xo/venv/lib64/python3.7/random.py", line 42, in <module>
from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
ModuleNotFoundError: No module named 'math'
tests/test_virtualenv.py::test_always_copy_option
๋ฅผ ์คํํ๋ ค๊ณ ํ ๋
OpenSUSE 15.0 ๋ฐ 15.1์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
virtualenv --always-copy temp
Using base prefix '/usr'
New python executable in /srv/www/htdocs/dev.SNIP.com/apk-downloader/temp/bin/python3
Also creating executable in /srv/www/htdocs/dev.SNIP.com/apk-downloader/temp/bin/python
Command /srv/www/htdocs/dev....der/temp/bin/python3 -m pip config list had error code 1
Installing setuptools, pip, wheel...
Complete output from command /srv/www/htdocs/dev....der/temp/bin/python3 - setuptools pip wheel:
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "/srv/www/htdocs/dev.SNIP.com/apk-downloader/temp/lib64/python3.6/tempfile.py", line 45, in <module>
from random import Random as _Random
File "/srv/www/htdocs/dev.SNIP.com/apk-downloader/temp/lib64/python3.6/random.py", line 42, in <module>
from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
ModuleNotFoundError: No module named 'math'
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "/usr/bin/virtualenv", line 11, in <module>
load_entry_point('virtualenv==16.7.5', 'console_scripts', 'virtualenv')()
File "/usr/lib/python3.6/site-packages/virtualenv.py", line 870, in main
symlink=options.symlink,
File "/usr/lib/python3.6/site-packages/virtualenv.py", line 1173, in create_environment
install_wheel(to_install, py_executable, search_dirs, download=download)
File "/usr/lib/python3.6/site-packages/virtualenv.py", line 1019, in install_wheel
_install_wheel_with_search_dir(download, project_names, py_executable, search_dirs)
File "/usr/lib/python3.6/site-packages/virtualenv.py", line 1110, in _install_wheel_with_search_dir
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=script)
File "/usr/lib/python3.6/site-packages/virtualenv.py", line 963, in call_subprocess
raise OSError("Command {} failed with error code {}".format(cmd_desc, proc.returncode))
OSError: Command /srv/www/htdocs/dev....der/temp/bin/python3 - setuptools pip wheel failed with error code 1
@gaborbernat ์ฌ๊ธฐ์ ์ด๋ค ์์ด๋์ด๊ฐ ์์ต๋๊น? --always-copy
์์ผ๋ฉด ์ฌ๋ฐ๋ฅด๊ฒ ์คํ๋ฉ๋๋ค.
venv
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ํ์ง๋ง --copies
๊ฐ ์ฌ์ฉ๋ ๊ฒฝ์ฐ์๋ ์ฌ์ ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์์ฑํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์์?
python3 -m venv --copies temp
SNIP<strong i="8">@pylon</strong>:/srv/www/htdocs/dev.SNIP.com/apk-downloader> l temp
total 24
drwxr-xr-x 5 SNIP users 4096 Oct 30 14:09 ./
drwxr-xr-x 7 SNIP users 4096 Oct 30 14:09 ../
drwxr-xr-x 2 SNIP users 4096 Oct 30 14:09 bin/
drwxr-xr-x 2 SNIP users 4096 Oct 30 14:09 include/
drwxr-xr-x 3 SNIP users 4096 Oct 30 14:09 lib/
lrwxrwxrwx 1 SNIP users 3 Oct 30 14:09 lib64 -> lib/
-rw-r--r-- 1 SNIP users 69 Oct 30 14:09 pyvenv.cfg
@archon810 , /lib64
, with python -m venv --copies
๋ ์ฌ์ ํ symlink์ด์ง๋ง ์ด ์ข๊ฒ๋ ์ ์ผํ๊ฒ ๋จ์ ์์ต๋๋ค. --copies
์์ด ์คํํ๊ณ ๋ค์ ๋ด์ฉ์ ์ดํด๋ณด์ธ์. /lib/pyhon3.6/site-packages
: ๋ง์ ํ์ผ์ด ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ๋ฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ๋น์ ์ ํ์์ ์ถฉ๋ถํ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋๋ฅผ ์ํด ์ฌ์ฉ ์ฌ๋ก๋ ์ฌ์ฉ์๊ฐ ์์ ์ virtualenv์์ ์์ ํ๋ ๋์ ์ค์๋ก ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ์ ํ์ผ ๊ถํ์ ์๋ง์ผ๋ก ๋ง๋ค์ง ์์๋์ง ํ์ธํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด ๊ฒฝ์ฐ /lib64๋ virtualenv ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ๋ด์ ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ก ํ์ฉ๋ฉ๋๋ค.
์ฐธ๊ณ ์ฌํญ: python3์์ ๊ธฐ๋ณธ์ ์ผ๋ก venv
๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ด์จ๋ virtualenv ์ฌ์ฉ์ ์ค๋จํ์ต๋๋ค.
Windows์ WSL ๋ด, Dropbox ํด๋์ Python ํ๊ฒฝ์ ์ค์ ํ๋ ค๊ณ ํ๋๋ฐ Dropbox๊ฐ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ก ์ธํด ํผ๋์ค๋ฌ์์ง๋๋ค. ์ด๊ฒ์ ๋ด๊ฐ ์์๋ผ ์ ์๋ ๋ง์ง๋ง ์ฌ๋ณผ๋ฆญ ๋งํฌ ์ธํธ์ด๋ฉฐ, ์ด ์ํ ์ถฉ๋์ด ๋ฐ์ํ์ง ์์๋ค๋ฉด virtualenv๊ฐ ๊ฑฐ์ ๊ฑฐ๊ธฐ์ ์์์ต๋๋ค.
๋ด ๋ง์, venv์ rm ๋ฐ cp -R์ ์ถ๊ฐํ๊ณ ํด๋น ๊ฒฝ๋ก๋ก ๊ฐ๋ ค๊ณ ํ ์ ์์ง๋ง ์ค์ ๋ก ์ํํ๋ ์์ ์ ์ํํ๊ณ ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ์ ํ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
python3 -m venv --copies env-linux && rm env-linux/lib64 && cp -R env-linux/lib env-linux/lib64
Ughhh, venv
๋ ๊ณต๋ฐฑ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ์ง ์๊ธฐ ๋๋ฌธ์ ์ข์ง ์์ต๋๋ค.
virtualenv pip์๋ ๋ค์์ด ์์ผ๋ฉฐ ์๋ํฉ๋๋ค.
#!/bin/sh
'''exec' "/mnt/c/Users/Artem Russakovskii/Dropbox/workspace/SNIP.test/SNIP/env-linux/bin/python3" "$0" "$@"
' '''
venv pip์๋ ๋ค์์ด ์์ผ๋ฉฐ ์ค๋ฅ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
#!"/mnt/c/Users/Artem Russakovskii/Dropbox/workspace/SNIP.test/SNIP/env-linux/bin/python3"
bash: env-linux.new/bin/pip3: "/mnt/c/Users/Artem: bad interpreter: No such file or directory
์ด math
๋ฌธ์ ๊ฐ ์ต์ 16.7.7
๋ฒ์ ์ ์ฌ์ฉํ์ฌ ์กด์ฌํจ์ ํ์ธํ์ต๋๋ค.
venv pip์๋ ๋ค์์ด ์์ผ๋ฉฐ ์ค๋ฅ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
!"/mnt/c/Users/Artem Russakovskii/Dropbox/workspace/SNIP.test/SNIP/env-linux/bin/python3"
์ด๊ฒ์ ๋น์ ์ด ๋ฐ๊ฒฌํ ๋ชป์๊ธด ๋ฒ๊ทธ์ ๋๋ค. ์ธ๊ด์ ์ผ๋ถ bash ์คํฌ๋ฆฝํธ์์ ๋๋ฝ๋ ๋ฐ์ดํ๋ก ๋ณด์ ๋๋ค(์ด๊ฒ์ด ๊ฐ๊ณผ๋๋ ๋น๋๋ฅผ ๊ฐ์ํ ๋ ๋๋ผ์ง ์์ ๊ฒ์ ๋๋ค).
์ด๋ฐ ์ข ๋ฅ์ ๋ฌผ๊ฑด์ ๋์๊ฒ ๊ฐ๋ ค์์ฆ์ ๊ธ๊ธฐ ๋๋ฌธ์ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋น์ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ์ง๋ง ์ ์ด๋ ์ฐ๋ฆฌ๋ ๋๊ตฐ๊ฐ๋ฅผ ์ํด ์ข์ ๊ฒ์ ์ป์ ๊ฒ์ ๋๋ค.
https://github.com/pypa/virtualenv/pull/1500 ์ ์ง๊ธ ์ด ๋ฌธ์ ๋ฅผ ์์ ํ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ๋น์ ์ด ๋ฐ๊ฒฌํ ๋ชป์๊ธด ๋ฒ๊ทธ์ ๋๋ค. ์ธ๊ด์ ์ผ๋ถ bash ์คํฌ๋ฆฝํธ์์ ๋๋ฝ๋ ๋ฐ์ดํ๋ก ๋ณด์ ๋๋ค(์ด๊ฒ์ด ๊ฐ๊ณผ๋๋ ๋น๋๋ฅผ ๊ฐ์ํ ๋ ๋๋ผ์ง ์์ ๊ฒ์ ๋๋ค).
์ด๋ฐ ์ข ๋ฅ์ ๋ฌผ๊ฑด์ ๋์๊ฒ ๊ฐ๋ ค์์ฆ์ ๊ธ๊ธฐ ๋๋ฌธ์ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋น์ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ์ง๋ง ์ ์ด๋ ์ฐ๋ฆฌ๋ ๋๊ตฐ๊ฐ๋ฅผ ์ํด ์ข์ ๊ฒ์ ์ป์ ๊ฒ์ ๋๋ค.