Virtualenv: [рдкреНрд░рддрд┐рдЧрдорди] рдЬрдм рд╕реАрдбрдмреНрд▓реНрдпреВрдбреА рдореЗрдВ `attr:` рдХреЗ рд╕рд╛рде `setup.cfg` рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ 20+ рдХреЗ рддрд╣рдд `рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЙрд▓` рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдорд╛рд░реНрдЪ 2020  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/virtualenv

рдореБрджреНрджрд╛

$рдПрд╕рдмреАрдЬреЗ. рд╕рдВрднрд╡рддрдГ https://github.com/pypa/virtualenv/issues/1670 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд╛рдпрдерди 2 рдХреЗ рддрд╣рдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп, py3 рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд░реЗрдкреНрд░реЛ

  1. рд╕реАрдбрдмреНрд▓реНрдпреВрдбреА рдореЗрдВ setup.cfg рдмрдирд╛рдПрдВ
$ cat setup.cfg 
[metadata]
name = boom
version = attr: boom.versiontools.get_self_version

2.

python2 -m pip install 'virtualenv >= 20'
python2 -m virtualenv test-venv-py2
  1. рдЪрджрд┐рд░ рдХреЛ рдХрд╣реАрдВ рдФрд░ рдордд рдХрд░реЛ
  2. рд╡рд╣рд╛рдВ рдХреБрдЫ рдореМрдЬреВрджрд╛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
test-venv-py2/bin/pip install setuptools

(рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ setuptools, рдкрд╛рдЗрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЫрд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА, рд▓реЗрдХрд┐рди PyPI рдкрд░ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)

  1. рдПрдХ рдЖрдпрд╛рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реАрдбрдмреНрд▓реНрдпреВрдбреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ import boom.versiontools.get_self_version :
$ test-venv-py2/bin/pip install setuptools
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Requirement already satisfied: setuptools in ~/src/github/experiments/boom/test-venv-py2/lib/python2.7/site-packages (44.0.0)
ERROR: Exception:
Traceback (most recent call last):
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/pip/_internal/cli/base_command.py", line 186, in _main
    status = self.run(options, args)
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/pip/_internal/commands/install.py", line 412, in run
    isolated=options.isolated_mode,
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/pip/_internal/commands/install.py", line 543, in get_lib_location_guesses
    scheme = distutils_scheme('', *args, **kwargs)
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/pip/_internal/locations.py", line 109, in distutils_scheme
    d.parse_config_files()
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site.py", line 153, in parse_config_files
    result = old_parse_config_files(self, *args, **kwargs)
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site.py", line 153, in parse_config_files
    result = old_parse_config_files(self, *args, **kwargs)
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/_distutils_patch_virtualenv.py", line 19, in parse_config_files
    result = old_parse_config_files(self, *args, **kwargs)
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/setuptools/dist.py", line 702, in parse_config_files
    ignore_option_errors=ignore_option_errors)
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/setuptools/config.py", line 121, in parse_configuration
    meta.parse()
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/setuptools/config.py", line 426, in parse
    section_parser_method(section_options)
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/setuptools/config.py", line 399, in parse_section
    self[name] = value
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/setuptools/config.py", line 184, in __setitem__
    value = parser(value)
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/setuptools/config.py", line 515, in _parse_version
    version = self._parse_attr(value, self.package_dir)
  File "~/src/experiments/boom/test-venv-py2/lib/python2.7/site-packages/setuptools/config.py", line 349, in _parse_attr
    module = import_module(module_name)
  File "~/.pyenv/versions/2.7.15/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named boom.versiontools

рд╡рд╛рддрд╛рд╡рд░рдг

  • рдУрдПрд╕: рдЬреЗрдВрдЯреВ рд▓рд┐рдирдХреНрд╕ ( centos:7 рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рддрд╣рдд рднреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп)
  • рдореЗрдЬрдмрд╛рди рдЕрдЬрдЧрд░ рдХрд╛ pip list рдЬрд╣рд╛рдВ virtualenv рд╕реНрдерд╛рдкрд┐рдд рд╣реИ:

    $ python2 -m pip list                                      
    Package             Version    
    ------------------- -----------
    appdirs             1.4.3      
    configparser        4.0.2      
    contextlib2         0.6.0.post1
    distlib             0.3.0      
    filelock            3.0.12     
    importlib-metadata  1.5.0      
    importlib-resources 1.1.0      
    pathlib2            2.3.5      
    pip                 18.1       
    scandir             1.10.0     
    setuptools          40.5.0     
    singledispatch      3.4.0.3    
    six                 1.14.0     
    typing              3.7.4.1    
    virtualenv          20.0.7     
    wheel               0.32.2     
    zipp                1.2.0      
    You are using pip version 18.1, however version 20.0.2 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    

рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ

рдирд┐рд░реНрдорд╛рдг рдХреЛ -vvv --with-traceback рд╕рд╛рде рдЪрд▓рд╛рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ:



$ <kbd i="24">python2 -m virtualenv -vvv --with-traceback test-venv-py2</kbd>

58 setup logging to NOTSET [DEBUG report:43]
69 find interpreter for spec PythonSpec(path=~/.pyenv/versions/ansible-lint-py2.7.15-pyenv-venv/bin/python2) [INFO builtin:44]
69 discover exe for PythonInfo(spec=CPython2.7.15.final.0-64, exe=~/.pyenv/versions/ansible-lint-py2.7.15-pyenv-venv/bin/python2, platform=linux2, version=u'2.7.15 (default, Sep 25 2018, 19:19:39) \n[GCC 7.3.0]', encoding_fs_io=UTF-8-UTF-8) in ~/.pyenv/versions/2.7.15 [DEBUG py_info:340]
70 filesystem is case-sensitive [DEBUG info:28]
71 Attempting to acquire lock 139774354598416 on ~/.local/share/virtualenv/py_info/20.0.7/0743af9fc1da334fdaa3884a6e8f56610e0b07773619ca8d43ce29ac2a098866.lock [DEBUG filelock:270]
72 Lock 139774354598416 acquired on ~/.local/share/virtualenv/py_info/20.0.7/0743af9fc1da334fdaa3884a6e8f56610e0b07773619ca8d43ce29ac2a098866.lock [INFO filelock:274]
72 get PythonInfo from ~/.local/share/virtualenv/py_info/20.0.7/0743af9fc1da334fdaa3884a6e8f56610e0b07773619ca8d43ce29ac2a098866.json for ~/.pyenv/versions/2.7.15/bin/python2.7 [DEBUG cached_py_info:76]
73 Attempting to release lock 139774354598416 on ~/.local/share/virtualenv/py_info/20.0.7/0743af9fc1da334fdaa3884a6e8f56610e0b07773619ca8d43ce29ac2a098866.lock [DEBUG filelock:315]
73 Lock 139774354598416 released on ~/.local/share/virtualenv/py_info/20.0.7/0743af9fc1da334fdaa3884a6e8f56610e0b07773619ca8d43ce29ac2a098866.lock [INFO filelock:318]
73 proposed PythonInfo({u'base_exec_prefix': None, u'system_stdlib': u'~/.pyenv/versions/2.7.15/lib/python2.7', u'has_venv': False, u'prefix': u'~/.pyenv/versions/2.7.15', u'stdout_encoding': None, u'executable': '~/.pyenv/versions/ansible-lint-py2.7.15-pyenv-venv/bin/python2', u'implementation': u'CPython', u'exec_prefix': u'~/.pyenv/versions/2.7.15', u'platform': u'linux2', u'version': u'2.7.15 (default, Sep 25 2018, 19:19:39) \n[GCC 7.3.0]', u'sysconfig_paths': {u'platstdlib': u'{platbase}/lib/python{py_version_short}', u'platlib': u'{platbase}/lib/python{py_version_short}/site-packages', u'purelib': u'{base}/lib/python{py_version_short}/site-packages', u'stdlib': u'{base}/lib/python{py_version_short}', u'scripts': u'{base}/bin', u'include': u'{base}/include/python{py_version_short}', u'data': u'{base}'}, u'base_prefix': None, u'file_system_encoding': u'UTF-8', u'version_info': VersionInfo(major=2, minor=7, micro=15, releaselevel=u'final', serial=0), u'sysconfig_vars': {u'base': u'~/.pyenv/versions/2.7.15', u'platbase': u'~/.pyenv/versions/2.7.15', u'PYTHONFRAMEWORK': u'', u'py_version_short': u'2.7'}, u'path': [u'~/.pyenv/versions/2.7.15/envs/ansible-lint-py2.7.15-pyenv-venv/lib/python2.7/site-packages/virtualenv/discovery', u'~/.pyenv/versions/2.7.15/lib/python27.zip', u'~/.pyenv/versions/2.7.15/lib/python2.7', u'~/.pyenv/versions/2.7.15/lib/python2.7/plat-linux2', u'~/.pyenv/versions/2.7.15/lib/python2.7/lib-tk', u'~/.pyenv/versions/2.7.15/lib/python2.7/lib-old', u'~/.pyenv/versions/2.7.15/lib/python2.7/lib-dynload', u'~/.pyenv/versions/2.7.15/lib/python2.7/site-packages'], u'max_size': 9223372036854775807, u'real_prefix': None, u'distutils_install': {u'purelib': u'lib/python2.7/site-packages', u'headers': u'include/python2.7/UNKNOWN', u'platlib': u'lib/python2.7/site-packages', u'data': u'', u'scripts': u'bin'}, u'architecture': 64, u'original_executable': u'~/.pyenv/versions/2.7.15/bin/python2.7', u'os': u'posix', u'system_executable': u'~/.pyenv/versions/2.7.15/bin/python2.7'}) [INFO builtin:50]
74 accepted PythonInfo({u'base_exec_prefix': None, u'system_stdlib': u'~/.pyenv/versions/2.7.15/lib/python2.7', u'has_venv': False, u'prefix': u'~/.pyenv/versions/2.7.15', u'stdout_encoding': None, u'executable': '~/.pyenv/versions/ansible-lint-py2.7.15-pyenv-venv/bin/python2', u'implementation': u'CPython', u'exec_prefix': u'~/.pyenv/versions/2.7.15', u'platform': u'linux2', u'version': u'2.7.15 (default, Sep 25 2018, 19:19:39) \n[GCC 7.3.0]', u'sysconfig_paths': {u'platstdlib': u'{platbase}/lib/python{py_version_short}', u'platlib': u'{platbase}/lib/python{py_version_short}/site-packages', u'purelib': u'{base}/lib/python{py_version_short}/site-packages', u'stdlib': u'{base}/lib/python{py_version_short}', u'scripts': u'{base}/bin', u'include': u'{base}/include/python{py_version_short}', u'data': u'{base}'}, u'base_prefix': None, u'file_system_encoding': u'UTF-8', u'version_info': VersionInfo(major=2, minor=7, micro=15, releaselevel=u'final', serial=0), u'sysconfig_vars': {u'base': u'~/.pyenv/versions/2.7.15', u'platbase': u'~/.pyenv/versions/2.7.15', u'PYTHONFRAMEWORK': u'', u'py_version_short': u'2.7'}, u'path': [u'~/.pyenv/versions/2.7.15/envs/ansible-lint-py2.7.15-pyenv-venv/lib/python2.7/site-packages/virtualenv/discovery', u'~/.pyenv/versions/2.7.15/lib/python27.zip', u'~/.pyenv/versions/2.7.15/lib/python2.7', u'~/.pyenv/versions/2.7.15/lib/python2.7/plat-linux2', u'~/.pyenv/versions/2.7.15/lib/python2.7/lib-tk', u'~/.pyenv/versions/2.7.15/lib/python2.7/lib-old', u'~/.pyenv/versions/2.7.15/lib/python2.7/lib-dynload', u'~/.pyenv/versions/2.7.15/lib/python2.7/site-packages'], u'max_size': 9223372036854775807, u'real_prefix': None, u'distutils_install': {u'purelib': u'lib/python2.7/site-packages', u'headers': u'include/python2.7/UNKNOWN', u'platlib': u'lib/python2.7/site-packages', u'data': u'', u'scripts': u'bin'}, u'architecture': 64, u'original_executable': u'~/.pyenv/versions/2.7.15/bin/python2.7', u'os': u'posix', u'system_executable': u'~/.pyenv/versions/2.7.15/bin/python2.7'}) [DEBUG builtin:52]
107 create virtual environment via CPython2Posix(dest=~/src/github/ansible/ansible-lint/test-venv-py2, clear=False, global=False) [INFO session:52]
107 create folder ~/src/github/ansible/ansible-lint/test-venv-py2/bin [DEBUG _sync:21]
108 create folder ~/src/github/ansible/ansible-lint/test-venv-py2/include [DEBUG _sync:21]
108 create folder ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages [DEBUG _sync:21]
108 write ~/src/github/ansible/ansible-lint/test-venv-py2/pyvenv.cfg [DEBUG pyenv_cfg:34]
108     home = ~/.pyenv/versions/2.7.15 [DEBUG pyenv_cfg:38]
108     implementation = CPython [DEBUG pyenv_cfg:38]
108     version_info = 2.7.15.final.0 [DEBUG pyenv_cfg:38]
108     virtualenv = 20.0.7 [DEBUG pyenv_cfg:38]
108     include-system-site-packages = false [DEBUG pyenv_cfg:38]
108     base-prefix = ~/.pyenv/versions/2.7.15 [DEBUG pyenv_cfg:38]
108     base-exec-prefix = ~/.pyenv/versions/2.7.15 [DEBUG pyenv_cfg:38]
108     base-executable = ~/.pyenv/versions/2.7.15/bin/python2.7 [DEBUG pyenv_cfg:38]
108 copy ~/.pyenv/versions/2.7.15/bin/python2.7 to ~/src/github/ansible/ansible-lint/test-venv-py2/bin/python [DEBUG _sync:48]
114 symlink ~/.pyenv/versions/2.7.15/lib/python2.7/os.py to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/os.py [DEBUG _sync:40]
115 symlink ~/.pyenv/versions/2.7.15/lib/python2.7/os.pyc to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/os.pyc [DEBUG _sync:40]
115 symlink directory ~/.pyenv/versions/2.7.15/include/python2.7 to ~/src/github/ansible/ansible-lint/test-venv-py2/include/python2.7 [DEBUG _sync:40]
115 symlink directory ~/.pyenv/versions/2.7.15/lib/python2.7/lib-dynload to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/lib-dynload [DEBUG _sync:40]
115 add distutils patch file ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/_distutils_patch_virtualenv.py [DEBUG api:63]
116 add distutils patch file ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/_distutils_patch_virtualenv.pth [DEBUG api:67]
116 ============================== target debug ============================== [DEBUG session:54]
117 debug via ~/src/github/ansible/ansible-lint/test-venv-py2/bin/python ~/.pyenv/versions/ansible-lint-py2.7.15-pyenv-venv/lib/python2.7/site-packages/virtualenv/create/debug.py [DEBUG creator:182]
116 {
  "site": "<module 'site' from '~/.pyenv/versions/2.7.15/lib/python2.7/site.pyc'>", 
  "datetime": "<module 'datetime' from '~/.pyenv/versions/2.7.15/lib/python2.7/lib-dynload/datetime.so'>", 
  "sys": {
    "executable": "~/src/github/ansible/ansible-lint/test-venv-py2/bin/python", 
    "real_prefix": "~/.pyenv/versions/2.7.15", 
    "base_exec_prefix": "~/.pyenv/versions/2.7.15", 
    "exec_prefix": "~/src/github/ansible/ansible-lint/test-venv-py2", 
    "io_encoding": null, 
    "meta_path": [], 
    "fs_encoding": "UTF-8", 
    "prefix": "~/src/github/ansible/ansible-lint/test-venv-py2", 
    "_base_executable": null, 
    "path": [
      "~/.pyenv/versions/2.7.15/lib/python27.zip", 
      "~/.pyenv/versions/2.7.15/lib/python2.7", 
      "~/.pyenv/versions/2.7.15/lib/python2.7/plat-linux2", 
      "~/.pyenv/versions/2.7.15/lib/python2.7/lib-tk", 
      "~/.pyenv/versions/2.7.15/lib/python2.7/lib-old", 
      "~/.pyenv/versions/2.7.15/lib/python2.7/lib-dynload", 
      "~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages"
    ], 
    "base_prefix": "~/.pyenv/versions/2.7.15"
  }, 
  "json": "<module 'json' from '~/.pyenv/versions/2.7.15/lib/python2.7/json/__init__.pyc'>", 
  "version": "2.7.15 (default, Sep 25 2018, 19:19:39) \n[GCC 7.3.0]", 
  "os": "<module 'os' from '~/.pyenv/versions/2.7.15/lib/python2.7/os.pyc'>", 
  "math": "<module 'math' from '~/.pyenv/versions/2.7.15/lib/python2.7/lib-dynload/math.so'>"
} [DEBUG session:55]
146 add seed packages via FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=~/.local/share/virtualenv/seed-app-data/v1) [INFO session:59]
146 Attempting to acquire lock 139774343684496 on ~/.local/share/virtualenv/seed-app-data/v1/2.7/wheels.lock [DEBUG filelock:270]
146 Lock 139774343684496 acquired on ~/.local/share/virtualenv/seed-app-data/v1/2.7/wheels.lock [INFO filelock:274]
147 get bundled wheel ~/.pyenv/versions/ansible-lint-py2.7.15-pyenv-venv/lib/python2.7/site-packages/virtualenv/seed/embed/wheels/pip-20.0.2-py2.py3-none-any.whl [DEBUG acquire:51]
148 get bundled wheel ~/.pyenv/versions/ansible-lint-py2.7.15-pyenv-venv/lib/python2.7/site-packages/virtualenv/seed/embed/wheels/wheel-0.34.2-py2.py3-none-any.whl [DEBUG acquire:51]
148 get bundled wheel ~/.pyenv/versions/ansible-lint-py2.7.15-pyenv-venv/lib/python2.7/site-packages/virtualenv/seed/embed/wheels/setuptools-44.0.0-py2.py3-none-any.whl [DEBUG acquire:51]
150 install wheel from wheel ~/.local/share/virtualenv/seed-app-data/v1/2.7/wheels/wheel-0.34.2-py2.py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:46]
150 install pip from wheel ~/.local/share/virtualenv/seed-app-data/v1/2.7/wheels/pip-20.0.2-py2.py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:46]
151 install setuptools from wheel ~/.local/share/virtualenv/seed-app-data/v1/2.7/wheels/setuptools-44.0.0-py2.py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:46]
151 copy directory ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/wheel-0.34.2-py2.py3-none-any/wheel to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/wheel [DEBUG _sync:48]
151 copy directory ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/pip-20.0.2-py2.py3-none-any/pip to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/pip [DEBUG _sync:48]
152 copy ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/setuptools-44.0.0-py2.py3-none-any/easy_install.py to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/easy_install.py [DEBUG _sync:48]
152 copy directory ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/setuptools-44.0.0-py2.py3-none-any/pkg_resources to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/pkg_resources [DEBUG _sync:48]
156 copy directory ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/wheel-0.34.2-py2.py3-none-any/wheel-0.34.2.dist-info to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/wheel-0.34.2.dist-info [DEBUG _sync:48]
158 copy directory ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/setuptools-44.0.0-py2.py3-none-any/setuptools to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/setuptools [DEBUG _sync:48]
159 copy ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/wheel-0.34.2-py2.py3-none-any/wheel-0.34.2.virtualenv to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/wheel-0.34.2.virtualenv [DEBUG _sync:48]
160 changing mode of ~/src/github/ansible/ansible-lint/test-venv-py2/bin/wheel to 755 [INFO util:566]
160 changing mode of ~/src/github/ansible/ansible-lint/test-venv-py2/bin/wheel-2.7 to 755 [INFO util:566]
161 changing mode of ~/src/github/ansible/ansible-lint/test-venv-py2/bin/wheel2 to 755 [INFO util:566]
161 generated console scripts wheel wheel2 wheel-2.7 [DEBUG base:53]
175 copy directory ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/setuptools-44.0.0-py2.py3-none-any/setuptools-44.0.0.dist-info to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/setuptools-44.0.0.dist-info [DEBUG _sync:48]
177 copy ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/setuptools-44.0.0-py2.py3-none-any/setuptools-44.0.0.virtualenv to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/setuptools-44.0.0.virtualenv [DEBUG _sync:48]
178 changing mode of ~/src/github/ansible/ansible-lint/test-venv-py2/bin/easy_install to 755 [INFO util:566]
179 changing mode of ~/src/github/ansible/ansible-lint/test-venv-py2/bin/easy_install2 to 755 [INFO util:566]
179 changing mode of ~/src/github/ansible/ansible-lint/test-venv-py2/bin/easy_install-2.7 to 755 [INFO util:566]
180 generated console scripts easy_install easy_install2 easy_install-2.7 [DEBUG base:53]
219 copy directory ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/pip-20.0.2-py2.py3-none-any/pip-20.0.2.dist-info to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/pip-20.0.2.dist-info [DEBUG _sync:48]
221 copy ~/.local/share/virtualenv/seed-app-data/v1/2.7/image/CopyPipInstall/pip-20.0.2-py2.py3-none-any/pip-20.0.2.virtualenv to ~/src/github/ansible/ansible-lint/test-venv-py2/lib/python2.7/site-packages/pip-20.0.2.virtualenv [DEBUG _sync:48]
222 changing mode of ~/src/github/ansible/ansible-lint/test-venv-py2/bin/pip to 755 [INFO util:566]
222 changing mode of ~/src/github/ansible/ansible-lint/test-venv-py2/bin/pip-2.7 to 755 [INFO util:566]
222 changing mode of ~/src/github/ansible/ansible-lint/test-venv-py2/bin/pip2 to 755 [INFO util:566]
222 generated console scripts pip pip-2.7 pip2 [DEBUG base:53]
223 Attempting to release lock 139774343684496 on ~/.local/share/virtualenv/seed-app-data/v1/2.7/wheels.lock [DEBUG filelock:315]
223 Lock 139774343684496 released on ~/.local/share/virtualenv/seed-app-data/v1/2.7/wheels.lock [INFO filelock:318]
223 add activators for Python, CShell, Fish, PowerShell, Bash [INFO session:65]
226 write ~/src/github/ansible/ansible-lint/test-venv-py2/pyvenv.cfg [DEBUG pyenv_cfg:34]
226     home = ~/.pyenv/versions/2.7.15 [DEBUG pyenv_cfg:38]
226     implementation = CPython [DEBUG pyenv_cfg:38]
226     version_info = 2.7.15.final.0 [DEBUG pyenv_cfg:38]
226     virtualenv = 20.0.7 [DEBUG pyenv_cfg:38]
226     include-system-site-packages = false [DEBUG pyenv_cfg:38]
226     base-prefix = ~/.pyenv/versions/2.7.15 [DEBUG pyenv_cfg:38]
227     base-exec-prefix = ~/.pyenv/versions/2.7.15 [DEBUG pyenv_cfg:38]
227     base-executable = ~/.pyenv/versions/2.7.15/bin/python2.7 [DEBUG pyenv_cfg:38]
227 created virtual environment CPython2.7.15.final.0-64 in 170ms
  creator CPython2Posix(dest=~/src/github/ansible/ansible-lint/test-venv-py2, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=~/.local/share/virtualenv/seed-app-data/v1)
  activators PythonActivator,CShellActivator,FishActivator,PowerShellActivator,BashActivator [WARNING __main__:21]

рд╕рдВрджрд░реНрдн: https://github.com/ansible/ansible-lint/issues/683

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдирдорд╕реНрдХрд╛рд░, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди virtualenv 20.0.8 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рджреЗрдЦреЗрдВ https://pypi.org/project/virtualenv/20.0.8/ (https://virtualenv.pypa.io/en/latest/changelog.html#v20-0-8-2020-03-04)ред рдХреГрдкрдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ; рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ, рдФрд░ рд╣рдо рдЯрд┐рдХрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджреЗрдВрдЧреЗред рдЗрд╕рд╕реЗ рдЖрдкрдХреЛ рд╣реБрдИ рдЕрд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдирдИ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдмрдЧ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реБрдП рдзреИрд░реНрдп рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
thanks

рд╕рднреА 12 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдПрдХ рдЖрдпрд╛рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реАрдбрдмреНрд▓реНрдпреВрдбреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдмреВрдо рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИредversiontools.get_self_version

рдХреНрдпрд╛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЖрдкрдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдореЗрдВ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдпрд╣ рдкрд╛рдпрдерди 3/рдкрд╛рдпрдерди 2 + рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ 16 рдХреЗ рддрд╣рдд рдЪреАрдЬреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди 2 + рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ 20 рдХреЗ рддрд╣рдд рдпрд╣ рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдирд╣реАрдВ, рдпрд╣ рд╡рд┐рд╕реНрдлреЛрдЯ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЖрдк рдЕрдиреНрдп рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реАрдбрдмреНрд▓реНрдпреВрдбреА рдореЗрдВ рдХреБрдЫ рд╣реИред

@webknjaz рдХреНрдпрд╛ рдЖрдк 100% рд╣реИрдВ рдХрд┐ рдпрд╣ рдкреБрд░рд╛рдиреЗ

рд╕рдХрд╛рд░рд╛рддреНрдордХред рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ 20+ рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкрд╛рдпрдерди 2 рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╣реА рдореИрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВред

https://github.com/pypa/virtualenv/pull/1688 рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреЗрдЧрд╛, рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ?

рдареАрдХ рд╣реИ, рдореИрдВ рдЬрд╛рдБрдЪ рдХрд░реВрдБрдЧрд╛ред

рд░рд┐рдЧреНрд░реЗрд╢рди рдбреЗрдореЛ:
asciicast

(рдЕрднреА рддрдХ рдЙрд╕ рдкреАрдЖрд░ рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рд╣реИ)

рдХреА рдкреБрд╖реНрдЯрд┐ рдХреАред рдкреАрдЖрд░ #1688 рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ:
asciicast

рдзрдиреНрдпрд╡рд╛рдж, рдЖрдЬ рдЗрд╕реЗ рдорд░реНрдЬ рдХрд░ рджреЗрдВрдЧреЗ, рдФрд░ рдПрдХ рд░рд┐рд▓реАрдЬ рдХрд╛рдЯ рджреЗрдВрдЧреЗред

рдирдорд╕реНрдХрд╛рд░, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди virtualenv 20.0.8 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рджреЗрдЦреЗрдВ https://pypi.org/project/virtualenv/20.0.8/ (https://virtualenv.pypa.io/en/latest/changelog.html#v20-0-8-2020-03-04)ред рдХреГрдкрдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ; рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ, рдФрд░ рд╣рдо рдЯрд┐рдХрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджреЗрдВрдЧреЗред рдЗрд╕рд╕реЗ рдЖрдкрдХреЛ рд╣реБрдИ рдЕрд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдирдИ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдмрдЧ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реБрдП рдзреИрд░реНрдп рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
thanks

рдЙрддреНрддрд░рджрд╛рдпреА рд╕реБрдзрд╛рд░ рдФрд░ рдЪреБрдкрдХреЗ рд╕реЗ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП @gaborbernat рдзрдиреНрдпрд╡рд╛рдж! рдЖрдкрдХрд╛ рдХрд╛рдо рдмрд╣реБрдд рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╣реИ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

neildhar picture neildhar  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vbabiy picture vbabiy  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jdandrea picture jdandrea  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

oconnor663 picture oconnor663  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jwarren116 picture jwarren116  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ