Microsoft Windows [Version 10.0.18908.1000]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\jodox>mkdir \temp\example
C:\Users\jodox>cd \temp\example
C:\temp\example>virtualenv .virtualenv
Using base prefix 'C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0'
New python executable in C:\temp\example\.virtualenv\Scripts\python.exe
Command C:\temp\example\.vir...v\Scripts\python.exe -m pip config list had error code 1
Installing setuptools, pip, wheel...
Complete output from command C:\temp\example\.vir...v\Scripts\python.exe - setuptools pip wheel:
Traceback (most recent call last):
File "<stdin>", line 10, in <module>
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\_internal\__init__.py", line 19, in <module>
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\_vendor\urllib3\__init__.py", line 8, in <module>
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\_vendor\urllib3\connectionpool.py", line 7, in <module>
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\Lib\socket.py", line 49, in <module>
import _socket
ImportError: DLL load failed: Access is denied.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 13, in <module>
ImportError: cannot import name 'main' from 'pip' (C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\__init__.py)
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts\virtualenv.exe\__main__.py", line 9, in <module>
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 831, in main
symlink=options.symlink,
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 1123, in create_environment
install_wheel(to_install, py_executable, search_dirs, download=download)
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 973, in install_wheel
_install_wheel_with_search_dir(download, project_names, py_executable, search_dirs)
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 1060, in _install_wheel_with_search_dir
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=script)
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 924, in call_subprocess
raise OSError("Command {} failed with error code {}".format(cmd_desc, proc.returncode))
OSError: Command C:\temp\example\.vir...v\Scripts\python.exe - setuptools pip wheel failed with error code 1
C:\temp\example>pip list
Package Version
---------------- ----------
certifi 2019.3.9
pipenv 2018.11.26
virtualenv 16.6.0
virtualenv-clone 0.5.3
C:\temp\example>
@zooba ์ด๊ฒ์ Windows ์คํ ์ด ์ธก์์ ๋์ ํฌ์ฅ์ฒ๋ผ ๋๊ปด์ง๋๋ค ๐ค?
@gaborbernat venv ๋ชจ๋์ด ์ ์๋ํ๊ธฐ ๋๋ฌธ์ virtualenv์ ๋ฒ๊ทธ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
Microsoft Windows [Version 10.0.18908.1000]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\jodox>cd \temp\example
(.venv) C:\temp\example>python3 -m venv .venv
C:\temp\example>.\.venv\Scripts\activate.bat
(.venv) C:\temp\example>python -V
Python 3.7.3
(.venv) C:\temp\example>python -c "import sys;print(sys.executable)"
C:\temp\example\.venv\Scripts\python.exe
(.venv) C:\temp\example>python -c "import socket"
(.venv) C:\temp\example>
์ ๋ง ์ฌ๋์ด ์๋์์. venv๋ ์์ฑ๋ venv๋ฅผ ๋ฒ๋ค๋ก ์ ๊ณตํ ํญ๋ชฉ์ผ๋ก ํ๋ก๋น์ ๋ํฉ๋๋ค. ์ฌ๊ธฐ์์ ๋คํธ์ํฌ ์คํ ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์คํจํฉ๋๋ค(virtualenv๊ฐ ์ต์ pip/setuptools๋ฅผ ์ค์นํ๊ธฐ ์ํด ์ํํจ). --no-download๋ฅผ ์ ๋ฌํ๋ฉด virtualenv๋ ์๋ํด์ผ ํฉ๋๋ค.
@gaborbernat ๋๋ virtualenv๋ฅผ ์ํ์ง ์์ง๋ง pipenv ๋ ๊ทธ๊ฒ์ ์ฌ์ฉํ๊ณ args๋ฅผ ์ ๋ฌํ ์ต์ ์ด ์์ต๋๋ค
C:\temp\example>pipenv --help
Usage: pipenv [OPTIONS] COMMAND [ARGS]...
Options:
--where Output project home information.
--venv Output virtualenv information.
--py Output Python interpreter information.
--envs Output Environment Variable options.
--rm Remove the virtualenv.
--bare Minimal output.
--completion Output completion (to be eval'd).
--man Display manpage.
--support Output diagnostic information for use in GitHub issues.
--site-packages Enable site-packages for the virtualenv. [env var:
PIPENV_SITE_PACKAGES]
--python TEXT Specify which version of Python virtualenv should use.
--three / --two Use Python 3/2 when creating virtualenv.
--clear Clears caches (pipenv, pip, and pip-tools). [env var:
PIPENV_CLEAR]
-v, --verbose Verbose mode.
--pypi-mirror TEXT Specify a PyPI mirror.
--version Show the version and exit.
-h, --help Show this message and exit.
Usage Examples:
Create a new project using Python 3.7, specifically:
$ pipenv --python 3.7
Remove project virtualenv (inferred from current directory):
$ pipenv --rm
Install all dependencies for a project (including dev):
$ pipenv install --dev
Create a lockfile containing pre-releases:
$ pipenv lock --pre
Show a graph of your installed dependencies:
$ pipenv graph
Check your installed dependencies for security vulnerabilities:
$ pipenv check
Install a local setup.py into your virtual environment/Pipfile:
$ pipenv install -e .
Use a lower-level pip command:
$ pipenv run pip freeze
Commands:
check Checks for security vulnerabilities and against PEP 508 markers
provided in Pipfile.
clean Uninstalls all packages not specified in Pipfile.lock.
graph Displays currently-installed dependency graph information.
install Installs provided packages and adds them to Pipfile, or (if no
packages are given), installs all packages from Pipfile.
lock Generates Pipfile.lock.
open View a given module in your editor.
run Spawns a command installed into the virtualenv.
shell Spawns a shell within the virtualenv.
sync Installs all packages specified in Pipfile.lock.
uninstall Un-installs a provided package and removes it from Pipfile.
update Runs lock, then sync.
C:\temp\example>pipenv install
Creating a virtualenv for this projectโฆ
Pipfile: C:\temp\example\Pipfile
Using C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\python.exe (3.7.3) to create virtualenvโฆ
[== ] Creating virtual environment...Already using interpreter C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\python.exe
Using base prefix 'C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0'
New python executable in C:\Users\jodox\.virtualenvs\example-Q6QloNNM\Scripts\python.exe
Command C:\Users\jodox\.virt...M\Scripts\python.exe -m pip config list had error code 1
Installing setuptools, pip, wheel...
Complete output from command C:\Users\jodox\.virt...M\Scripts\python.exe - setuptools pip wheel:
Traceback (most recent call last):
File "<stdin>", line 10, in <module>
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\_internal\__init__.py", line 19, in <module>
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\_vendor\urllib3\__init__.py", line 8, in <module>
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\_vendor\urllib3\connectionpool.py", line 7, in <module>
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\Lib\socket.py", line 49, in <module>
import _socket
ImportError: DLL load failed: Access is denied.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 13, in <module>
ImportError: cannot import name 'main' from 'pip' (C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\__init__.py)
----------------------------------------
...Installing setuptools, pip, wheel...done.
Failed creating virtual environment
[pipenv.exceptions.VirtualenvCreationException]: File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pipenv\cli\command.py", line 254, in install
[pipenv.exceptions.VirtualenvCreationException]: editable_packages=state.installstate.editables,
[pipenv.exceptions.VirtualenvCreationException]: File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pipenv\core.py", line 1741, in do_install
[pipenv.exceptions.VirtualenvCreationException]: pypi_mirror=pypi_mirror,
[pipenv.exceptions.VirtualenvCreationException]: File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pipenv\core.py", line 574, in ensure_project
[pipenv.exceptions.VirtualenvCreationException]: pypi_mirror=pypi_mirror,
[pipenv.exceptions.VirtualenvCreationException]: File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pipenv\core.py", line 506, in ensure_virtualenv
[pipenv.exceptions.VirtualenvCreationException]: python=python, site_packages=site_packages, pypi_mirror=pypi_mirror
[pipenv.exceptions.VirtualenvCreationException]: File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pipenv\core.py", line 935, in do_create_virtualenv
[pipenv.exceptions.VirtualenvCreationException]: extra=[crayons.blue("{0}".format(c.err)),]
[pipenv.exceptions.VirtualenvCreationException]: Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 2580, in <module>
main()
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 831, in main
symlink=options.symlink,
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 1123, in create_environment
install_wheel(to_install, py_executable, search_dirs, download=download)
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 973, in install_wheel
_install_wheel_with_search_dir(download, project_names, py_executable, search_dirs)
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 1060, in _install_wheel_with_search_dir
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=script)
File "C:\Users\jodox\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv.py", line 924, in call_subprocess
raise OSError("Command {} failed with error code {}".format(cmd_desc, proc.returncode))
OSError: Command C:\Users\jodox\.virt...M\Scripts\python.exe - setuptools pip wheel failed with error code 1
Failed to create virtual environment.
C:\temp\example>
_socket์ ๊ฐ์ ธ์ฌ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ์ฝ์ด์ ํจํค์ง ๋ฌธ์ ๋ก ๊ท๊ฒฐ๋ฉ๋๋ค. ๐ค ๊ทธ๋๋ ์ ํจ์ฑ์ ๊ฒ์ฌํด์ผ ํฉ๋๋ค.
@pfmoore ์ด๊ฒ์ pip ๊ด๋ จ ๐ค ๊ฐ์ง๋ง python ๊ฒฝ๋ก์ ํ ์ ๋ฃ์ด virtualenv์์ ํธ์ถํ ๋ ์ด์ํ๊ฒ ๋ํ๋ฉ๋๋ค.
Command C:\Users\traveler\gi...v\Scripts\python.exe -m pip config list had error code 1
Installing setuptools, pip, wheel...
Complete output from command C:\Users\traveler\gi...v\Scripts\python.exe - setuptools pip wheel:
Traceback (most recent call last):
File "<stdin>", line 10, in <module>
File "C:\Users\traveler\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\_internal\__init__.py", line 19, in <module>
File "C:\Users\traveler\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\_vendor\urllib3\__init__.py", line 8, in <module>
File "C:\Users\traveler\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\virtualenv_support\pip-19.1.1-py2.py3-none-any.whl\pip\_vendor\urllib3\connectionpool.py", line 7, in <module>
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\Lib\socket.py", line 49, in <module>
import _socket
ImportError: DLL load failed: Access is denied.
ํธ์ง: NM, ์ฐ๋ฆฌ์ ์๋ก์ด virtualenv๊ฐ _socket์ ์ก์ธ์คํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค, ๋ด ๋์ ๐คฆโโ
๋ฐ๋ผ์ ์๋ก ์์ฑ๋ virtualenv์์ _socket์ ๊ฐ์ ธ์ค๋ ค๊ณ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์คํจํฉ๋๋ค.
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\Lib\_socket.cp37-win_amd64.pyd
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\Lib\_socket.pyd
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\Lib\_socket.py
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\Lib\_socket.pyw
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\Lib\_socket.pyc
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\DLLs\_socket.cp37-win_amd64.pyd
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\DLLs\_socket.pyd
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
File "<frozen importlib._bootstrap>", line 583, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 1043, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: DLL load failed: Access is denied.
์ค์น๋ ํ์ด์ฌ์์ ๋์ผํ ์์ ์ ์ํํ๋ ๋์
์ ๋ Python์ Store ๋ฐฐํฌํ์ ์ฌ์ฉํ ์ ์ด ์์ต๋๋ค. @zooba ๋ ํด๋น ๋ฐฐํฌํ์ ์ ๋ฌธ๊ฐ์ด๋ฏ๋ก ์ฌ๊ธฐ์์ ๋์์ ์์ฒญํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@JoDoX ๊ฐ๋จํ ํ ์คํธ๋ฅผ ํ ์ ์์ต๋๊น? ํ์ด์ฌ์ ์์ํ๊ณ ์คํ
import _socket
import socket
์ค๋ฅ ์์ด ์๋ํด์ผ ํฉ๋๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด virtualenv(๋๋ pip)๊ฐ ์๋๋ผ Python์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ ๋๋ค.
@pfmoore ์์ ๋ด ๊ฒ์๋ฌผ์ ์ฐธ์กฐํ์ญ์์ค. ์ด๋ฌํ ๋ช ๋ น์ ์ค์น๋ Python์์ ์์ํ๋ ๊ฒฝ์ฐ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ ํ๊ฒฝ python ๋ด์์ ์คํจํฉ๋๋ค. ์ค์น๋ Python์์ ์คํ๋๋ ๊ฒฝ์ฐ์๋ง DLL์ ์ก์ธ์คํ ์ ์๋ค๋ ์ฌ์ค๊ณผ ์ด๋ป๊ฒ๋ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์คํ ํ์ผ์ ๋ณต์ฌํ๋ฉด ์ ์คํธ๋ฆผ DLL์ ์ก์ธ์คํ๋ ๊ธฐ๋ฅ์ด ์์ค๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋ฌธ์ ๊ฐ virtualenv ๋๋ Windows ์คํ ์ด ํจํค์ง๊ณผ ๊ด๋ จ๋์ด ์๋์ง ํ์คํ์ง ์์ต๋๋ค.
ํธ์งํ๋ค:
๊ฐ์ ํ๊ฒฝ์ ๋ง๋ค๊ณ ์์ ๋ก๊ทธ๋ฅผ ๋ณด๋ฉด ๊ฐ์ ํ๊ฒฝ์ด ์ค์ ๋ก ์๋ ์์น์์ pyd๋ฅผ ๋ก๋ํ๋ ค๊ณ ์๋ํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์ค์ ๋ก ์๋ ์์น์์ ๋ชจ๋ ๊ฒ์ ๋ก๋ํฉ๋๋ค. Include ๋ฐ Lib๊ฐ ๋ชจ๋ ๋น์ด ์์ต๋๋ค. virtualenv์์ ์ฐ๋ฆฌ๋ ์ง๊ธ ์ด๊ฒ์ ๋ณต์ฌํฉ๋๋ค.... ์ด์ฉ๋ฉด ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ๊ฐ์ง๊ณ ์๋ ๊ฒ๋ณด๋ค venv๋ฅผ ๋ง๋๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์์ง๋ ๋ชจ๋ฆ ๋๋ค ๐ค ์กฐ์ฌ๊ฐ ํ์ํ ๊ฒ์ ๋๋ค.
# C:\Users\traveler\git\venv\lib\encodings\__pycache__\__init__.cpython-37.pyc matches C:\Users\traveler\git\venv\lib\encodings\__init__.py
# code object from 'C:\\Users\\traveler\\git\\venv\\lib\\encodings\\__pycache__\\__init__.cpython-37.pyc'
# trying C:\Users\traveler\git\venv\lib\codecs.cp37-win_amd64.pyd
# trying C:\Users\traveler\git\venv\lib\codecs.pyd
# trying C:\Users\traveler\git\venv\lib\codecs.py
# C:\Users\traveler\git\venv\lib\__pycache__\codecs.cpython-37.pyc matches C:\Users\traveler\git\venv\lib\codecs.py
# code object from 'C:\\Users\\traveler\\git\\venv\\lib\\__pycache__\\codecs.cpython-37.pyc'
๋
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\DLLs\encodings.cp37-win_amd64.pyd
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\DLLs\encodings.pyd
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\DLLs\encodings.py
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\DLLs\encodings.pyw
# trying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\DLLs\encodings.pyc
# C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1008.0_x64__qbz5n2kfra8p0\lib\encodings\__pycache__\__init__.
@gaborbernat ์, ์ฃ์กํฉ๋๋ค - ๊ทํ์ ๊ฒ์๋ฌผ์ ํ์ด๋ณด๊ณ ๊ทํ๊ฐ ๋งํ ๊ฒ์ ์คํดํ์ต๋๋ค. ๋ด ์๋ชป์ด์ผ.
Python ์คํ ํ์ผ์ ๋ณต์ฌํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค๋ ์ ์ ํ์คํ ๋ฐฐ์ ํ์ง ์์ต๋๋ค. ์คํ ์ด ๋น๋ ์๋ ๋ฐฉ์์ ๋ํ ๊ฐ๋ฐ์ ์์ค ๋ฌธ์๋ฅผ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ @zooba ๊ฐ ์ ๋ง ํ์ํฉ๋๋ค. ์ฝ๋์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ์๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
์, ์คํ ํ์ผ์ ๋ณต์ฌํ ์ ์์ต๋๋ค. ์ฑ ํจํค์ง ์ธ๋ถ์ ์์ผ๋ฉด ์ด์ ์ฒด์ ์์ ์ปจํ ์คํธ๋ฅผ ์ ๋๋ก ํ์ฑํํ์ง ์์ต๋๋ค.
์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๊ฑธ๊ฑฐ๋ venv/scripts/nt
์ ์๋ python.exe
๋ฅผ ๋ณต์ฌํ ์ ์์ต๋๋ค. ์คํํ ์ค์ ๊ฒ์ ์ฐพ๊ธฐ ์ํด pyvenv.cfg
๋ฅผ ์ฐพ๋ py.exe ๋ฐ์ฒ์ ํน๋ณํ ๋ณต์ฌ๋ณธ์
๋๋ค. (๋๋ ํด๋น ํ์ผ์ ์ฌ์ฉํ์ง ์์ผ๋ ค๋ฉด ์ ํธํ๋ ๊ตฌ์ฑ ์ค์ ์ ์ฐพ๋ ๋ค๋ฅธ ๋ฒ์ ์ ๋น๋ํ ์ ์์ต๋๋ค.)
์ฑ ํจํค์ง ์ธ๋ถ์ ์์ผ๋ฉด ์ด์ ์ฒด์ ์์ ์ปจํ ์คํธ๋ฅผ ์ ๋๋ก ํ์ฑํํ์ง ์์ต๋๋ค.
๋ค์ ์ฃผ์ ์์ ๋ฒ์ด๋์ง๋ง ์ด๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ฝ๋(๋ฐ/๋๋ ์ด์ ๋ํ ๊ด๋ จ MS ๋ฌธ์)๋ฅผ ์๋ ค์ฃผ์ค ์ ์์ต๋๊น? ์ ๋ ํ์ฌ๋ณด๋ค ์คํ ์ด ์ฑ์ ๋ ์ ์ดํดํ๊ณ ์ถ์ต๋๋ค(ํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก MS ์คํ ์ด ์ฑ์ ๋ํด ์๋ฌด๊ฒ๋ ์ดํดํ์ง ๋ชปํ๊ณ ์์ต๋๋ค).
์ด ๋ถ๋ถ์ด ๋ฌธ์ํ๋์ด ์๋์ง ํ์คํ์ง ์์ผ๋ฉฐ, ๋ฌธ์ํ๋์ด ์๋ ๊ฒฝ์ฐ MSIX ๋ฌธ์ ๋ด๋ถ ๊น์์ด ์๊ฑฐ๋ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ ์ผ๋ถ AppV ์ฌ์(์ฌ์ฉ๋ ๊ฒฉ๋ฆฌ ๊ธฐ์ ์ ์ด์ ๋ฒ์ ์)์ ์์ ์ ์์ต๋๋ค. .
ํจํค์ง๋ ์ฃผ๋ก ๋จ์ผ ์ง์
์ ์ ์๋ฏธํ๋ฉฐ ๋ค๋ฅธ ์ฑ์ด ์ฐ๋ฆฌ DLL์ ์ฌ์ฉํ์ง ๋ชปํ๋๋ก ํ๋ ์ฑ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ํจํค์ง์ ์ํด ์์์ ํ์ธํ ๋๊น์ง ํจํค์ง์ LoadLibrary
ํ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ ๊ฒ ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์๋ณธ python.exe
๋ฅผ ์คํํ๋ ๊ฒ์
๋๋ค.
์, ๊ทธ๋ฆฌ๊ณ ๋ถ๋ช
ํ ๋งํ์ง๋ง, ์ด๊ฒ๋ค์ ๋ชจ๋ ์๋์ ์ธ ์๋์ ์ธ OS ์ ํ ์ฌํญ์
๋๋ค. Python์ ์ด๋ฌํ ์ผ์ ํ๋๋ก ์ ํํ์ง ์์์ผ๋ฏ๋ก CPython์๋ ์ด์ ๋ํ ์ฝ๋๊ฐ ์์ต๋๋ค. VENV_REDIRECT
์ ์ ๋ค์ ์จ๊ฒจ์ง launcher.c ๋ถ๋ถ์ด ํฅ๋ฏธ๋ก์ธ ์ ์์ง๋ง(๊ทธ๋ฆฌ๊ณ ์ง์๋์ง ์๋ ๋ด๋ถ ์ธ๋ถ ์ ๋ณด...)
๊ฐ์ฌ ํด์. ๋๋ ์ฝ๊ฐ์ ํ๊ธฐ๋ฅผํ๊ณ https://docs.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-behind-the-scenes ๊ฐ ๊ด๋ จ์ด ์์ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค(๋น๋ก ๋๋ ์์ง ์ฝ์ด๋ณด์ธ์. ๋์ค์ ๋งํฌ๋ฅผ ๋ค์ ์ฐพ์ ์ ์๋๋ก ์ฃผ๋ก ํฌ์คํ ํ๊ณ ์์ด์ ;-))
@gaborbernat virtualenv๊ฐ ์ ์ฅ์ Python์ ์ง์ํ๋ "์ฌ๋ฐ๋ฅธ" ๋ฐฉ๋ฒ์ @zooba ๊ฐ ์ ์ํ ๋๋ก venv/scripts/nt
์์ ๋ฆฌ๋๋ ํฐ๋ฅผ ๋ณต์ฌํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ venv๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ์์ฑ์ ์ํํ๋ ์์ด๋์ด์ ๋งค์ฐ ๊ฐ๊น์ต๋๋ค. ์ ๊ฐ ์ผ๋ง ์ ์ ์ ์ํ์ผ๋ฉฐ ํธํ์ฑ ๋ฌธ์ ๋๋ฌธ์ ๊ด์ฌ์ด ์์์ต๋๋ค. Store ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด ์ํํ์ง๋ง ๋์ผํ ๋ฒ์ ์ "ํ์ค" Python์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ ๋์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. (๊ฒ๋ค๊ฐ virtualenv์ ์ฌ์ฉ์ ์ ์ site.py
์ ๊ฐ์ ๊ฒ๊ณผ ๋ฆฌ๋๋ ํฐ๋ฅผ ํผํฉํด๋ ์๋ํ๋์ง ํ์ ํ ์ ์์ต๋๋ค.)
์ฝ๋ฉ์ ๋์๋๋ฆฌ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ํ์ง๋ง ์ํ๋ ์ ๊ทผ ๋ฐฉ์์ ๋ํ ์ง์นจ์ด ํ์ํฉ๋๋ค.
(์ค, ๊ทธ๋ฆฌ๊ณ @zooba , ์ ๊ฐ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๋ ๋์ ์ ์ฅ์ Python์ "์ผ๋ฐ" Python ์ค์น์ ์ผ๋ง๋ ์ ๊ณต์กดํฉ๋๊น? ์ด ํญ๋ชฉ์ ํ ์คํธํ๋ ค๋ฉด ๋ฐฉํด๋ฅผ ํผํ๊ธฐ ์ํด ๊นจ๋ํ VM์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋์๊น์? ๋ด ๊ธฐ๋ณธ Python ์ค์น๋ก?๋๋ ๋ถ์์ฉ ์์ด ์์ Python์ ์ค์น ๋ฐ ์ ๊ฑฐํ ์ ์์ต๋๊น?)
๊ทธ๋์ ์ข์ ์๊ฐ์ ํ๊ฒ ๋์์ต๋๋ค. ๊ฒฐ๊ตญ ํต์ฌ ๋ ผ๋ฆฌ๋ฅผ ๋ค์์ผ๋ก ์ ํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ ๊ณต๋ stdlib๊ฐ venv๊ฐ ์์ ์ ์๋ ๋ช ๊ฐ์ง ์์น:
๋๋ ์ด๊ฒ์ ๋ํด ๊ฐํ +1์ด ๋ ๊ฒ์
๋๋ค. Python 2๊ฐ ๊ณง EOL์ ๋๋ฌํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์๋๋ ๋ชจ๋ Python ๋ฒ์ ์ venv๊ฐ ์๋ ์ํฉ์ด ๋ ๊ฒ์
๋๋ค(๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ์ง ์์ ๋ฒ์ ์๋ pyvenv.cfg
๋ฉ์ปค๋์ฆ์ด ์์). ๋ฐ๋ผ์ ํ์ฌ ์ฌ์ฉํ๋ ํดํน์ ์ต๋ํ ํผํ ์ ์๋ค๋ฉด ํฐ ์น๋ฆฌ๊ฐ ๋ ๊ฒ์
๋๋ค. (๋ํ virtualenv์ venv ๊ฐ์ ํธํ์ฑ๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค :-))
์ด๋ ค์ด ๋ถ๋ถ์ ์ฐ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ๋ณด์ฆ ๋ชฉ๋ก์ ๊ตฌ์ฑํ๋ ํญ๋ชฉ์ ๊ฒฐ์ ํ๋ ๊ฒ์
๋๋ค. ๋๋ ์ค์ ๋ก ๋ง์ ๊ฒ์ด ์๋์ง ํ์คํ์ง ์์ต๋๋ค. ์ ์ผํ ์ด๋ ค์ด ๋ฌธ์ ๋ sys.real_prefix
๋ sys.base_prefix
๋ฌธ์ ์
๋๋ค. ์์งํ ์ ๋ ์ฐ๋ฆฌ๊ฐ ์ด๋ค ๊ฒฝ์ฐ์๋ stdlib๋ฅผ ๋ฐ๋ผ์ผ ํ๋ค๊ณ ๋ฏฟ์ต๋๋ค. ์ ์ ํ ์ ํ ๊ธฐ๊ฐ).
๋๋ ์ด๊ฒ์ ๋ํด @pfmoore ์ ๋์ํฉ๋๋ค.
๋ถ๋ช ํ ํ์๋ฉด, Python 2 ์ง์์ ์ ์ด๋ ํฅํ 3๋ ๋์์ ์ค๋จ๋ ๊ณํ์ด ์์ต๋๋ค. ์ ์๋ฃจ์ ์ ๊ฐ๋ฅํ ๊ฒฝ์ฐ stdlib venv๋ฅผ ์ฌ์ฉํ๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ ๊ณต ๋ ผ๋ฆฌ๋ก ๋์ฒดํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
์ดํดํ๋ค. Python 2๊ฐ ์ง์๋๋๋ก ๊ธฐ์กด ํ๋ก์ธ์ค๋ฅผ ์ ์งํด์ผ ํ์ง๋ง core venv ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ณณ์์ ํผํ ์ ์๋ค๋ฉด ์ข์ต๋๋ค.
https://github.com/pypa/virtualenv/issues/1366 ์์ ๋ณ๋์ ํ ๋ก ์ ์์ํ์ต๋๋ค ๐
(์ค, ๊ทธ๋ฆฌ๊ณ @zooba , ์ ๊ฐ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๋ ๋์ ์ ์ฅ์ Python์ "์ผ๋ฐ" Python ์ค์น์ ์ผ๋ง๋ ์ ๊ณต์กดํฉ๋๊น? ์ด ํญ๋ชฉ์ ํ ์คํธํ๋ ค๋ฉด ๋ฐฉํด๋ฅผ ํผํ๊ธฐ ์ํด ๊นจ๋ํ VM์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋์๊น์? ๋ด ๊ธฐ๋ณธ Python ์ค์น๋ก?๋๋ ๋ถ์์ฉ ์์ด ์์ Python์ ์ค์น ๋ฐ ์ ๊ฑฐํ ์ ์์ต๋๊น?)
@pfmoore (Github ์๋ฆผ์ด ํญ์ ๋ด ์ฃผ์๋ฅผ ๋์ง๋ ์์ต๋๋ค...) ๋์ณ์ ์ฃ์กํฉ๋๋ค.
๋ถ์์ฉ ์์ด ์คํ ์ด Python์ ์ค์น/์ ๊ฑฐํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ค์ ๋ก ๊ฐ์ฅ ํฐ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค. (๋จ, ์ด๊ฒ์ ๋จ์ ์ ์ค์ ์ฌ์ฉ์ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์๊ณ ๊ฐ์ ๋ฎ์ด์ฐ๋ฉด ์๋ก ์ค์น/์ ๊ฑฐ ์ฃผ๊ธฐ๊ฐ ์ค๋จ๋๊ธฐ ๋๋ฌธ์ PEP 514๋ก๋ ์ถฉ๋ถํ์ง ์๋ค๋ ๊ฒ์ ๋๋ค.)
์ฐ๋ฆฌ๋ pep 514์ ๋ฐ๋ผ PythonCore ๋์ ๋ค๋ฅธ ํ์ฌ(์: Microsoft Store)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฎ์ด์ฐ๊ธฐ ๋ฌธ์ ๊ฐ ๋์ง ์์ ๊ฒ์ด๋ผ๊ณ Twitter๋ฅผ ํตํด ์ด์ผ๊ธฐํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฅผ ์๋ฝํ๋๋ก py.exe๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
virtualenv ๋์ venv๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
์ด์ virtualenv๋ ์ด๋ฅผ ์ง์ํ ์ ์๊ณ ์ง์ํ์ง ์์ ๊ฒ์ ๋๋ค. virtualenv 20, ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค. ์ ํจ์ฑ์ ๊ฒ์ฌํด์ผ ํฉ๋๋ค. ์ฌํ๊ฒ๋ AFAIK์์๋ Azure CI์ ์คํ ์ด ํ์ด์ฌ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. @zooba ์ด๊ฒ์ด ์ฌ์ ํ ์ฌ์ค์ด๋ฉฐ ๊ณ์ ์งํ๋ ๊ฒ์์ ํ์ธํ ์ ์์ต๋๊น?
์ฒซ ๋ฒ์งธ ๋ฐ๋ณต์์ ์ฐ๋ฆฌ๋ ๋ด์ฅ/์๊ฐ ์คํ ๋ฉ์๋๋ฅผ ์คํ ์ด๋ฅผ ์ง์ํ์ง ์๋ ๊ฒ์ผ๋ก ํ์ํ ์ ์์ต๋๋ค. ํ์ด์ฌ์ด store pyhton @zooba ๊ฐ ์ ์ํ ๊ฒ์ธ์ง ํ์ธํ๋ ค๋ฉด:
๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์๋ง๋ ์ฝ๊ธฐ ์ํด sys.executable์ ์ด๋ ค๊ณ ํ ๊ฒ์ ๋๋ค(์คํจํ ๊ฒ์ ๋๋ค).
๋๋ pythonXY.dll์ด sys.executable๊ณผ ๋์ผํ ๋๋ ํ ๋ฆฌ์ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ ์์ ํด์ผ ํ ๋ ๋ค๋ฅธ ๊ฐ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ ๋ช ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ๋ฒ(์๋ฒ ๋ฉ, ๊ณ ์ , ์ ์ ๋น๋)์ผ๋ก ๋ฐ์ํ ์ ์์ผ๋ฉฐ virtualenv๊ฐ ํ์ฌ ๊ทธ ์ด๋ค ๊ฒ๊ณผ๋ ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด์ (3.5 ์ด์ ) ์ค์น ํ๋ก๊ทธ๋จ์ ์์คํ ํด๋์ ๋ฃ์ ์ ์์ง๋ง ์ฌ์ ํ ์๋ํ๋ฏ๋ก ์๋ฒฝํ ํ ์คํธ๋ ์๋๋๋ค.
์ด๊ฒ์ ์ด์ #1502์ ์ผ๋ถ๋ก ๋ฌ์ฑ๋์์ต๋๋ค. Virtualenv๋ store python์ ๋ด์ฅ ์ ๋ต๊ณผ ํธํ๋์ง ์๋ ๊ฒ์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ํ์ํ๊ณ , store python์ venv ๋ชจ๋์ ์์ ์ ์์ํ๊ธฐ ์ํด ํด๋ฐฑํฉ๋๋ค. ํ๋ก์ ํธ์ ํ ์คํธ ์ค์ํธ๊ฐ ํต๊ณผํฉ๋๋ค. ๋ํ ์ด์ Windows OS๊ฐ ์ง์ํ๋ ๊ฒฝ์ฐ ๋ณต์ฌ ๋ฐฉ๋ฒ ๋์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค(์์ ํด๋ ๋ด๋ถ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ง๋ค์ด ํ ์คํธ).
virtualenv ๋ด์์ Microsoft Store์ ๋ํ ๊ธฐ๋ณธ ์ ๊ณต ์ง์์ ์๋ง๋ ์ด์ ํ์ํ ์๋ก์ด ๊ธฐ์ ์ ์ฌ์ฉํ๋๋ก cpython3windows ํด๋์ค๋ฅผ ๊ฐ์ ํ์ฌ ํฅํ ํ์ ํฐ์ผ์์ ์ํ๋ ์ ์์ต๋๋ค.