Virtualenv: рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд virtualenv рдЯреВрдЯреА рд╣реБрдИ / рд▓рд╛рдкрддрд╛ рдЬрд╝рд┐рдк рдкреИрдХреЗрдЬ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдлрд╝рд░ре░ 2020  ┬╖  25рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/virtualenv

рдПрдХ рдореБрджреНрджрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдпрджрд┐ рдмреАрдпреВрдЬреА рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдХреГрдкрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ:

  • [x] рдиреНрдпреВрдирддрдо рдкреНрд░рдЬрдирди рдпреЛрдЧреНрдп рдЙрджрд╛рд╣рд░рдг рдпрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг
  • [x] -vvv --with-traceback рдЭрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЖрднрд╛рд╕реА рдкрд░реНрдпрд╛рд╡рд░рдг рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрддреНрдкрд╛рджрди рд╢рд╛рдорд┐рд▓ рдерд╛
  • [] pip list рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рд╡рд╣ рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рдкрд░ рдЬрд╝рд┐рдкреНрдкреНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдкрд░ рд╡рд░реНрдЪреБрдЕрдирд╡ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдореИрдВрдиреЗ рдПрдХ рдиреНрдпреВрдирддрдо рдкреНрд░рдЬрдирди рдпреЛрдЧреНрдп рдбреЙрдХрдлреЗрд░рд╛рдЗрд▓ рдмрдирд╛рдпрд╛ рд╣реИ, рдпрд╣ рд╕реНрд╡ рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рд╣реИ:

FROM ubuntu:16.04

RUN apt-get update && apt-get install -y --no-install-recommends \
    python python-pip python-pkg-resources python-setuptools python-wheel python-dev libxslt1-dev
RUN pip install virtualenv --disable-pip-version-check --no-cache-dir


WORKDIR /root
RUN virtualenv venv

рдкреВрд░реНрдг рд╕реНрдерд╛рдкрд┐рдд рд▓реЙрдЧ:

UN pip install virtualenv --disable-pip-version-check --no-cache-dir
 ---> Running in 92fa3d30b758
Collecting virtualenv
  Downloading https://files.pythonhosted.org/packages/a3/dd/e43866ac0d25cd1ecbde0814f6cd7372ea257fbdf443dc9f0a01740da93d/virtualenv-20.0.4-py2.py3-none-any.whl (4.6MB)
Collecting six<2,>=1.9.0 (from virtualenv)
  Downloading https://files.pythonhosted.org/packages/65/eb/1f97cb97bfc2390a276969c6fae16075da282f5058082d4cb10c6c5c1dba/six-1.14.0-py2.py3-none-any.whl
Collecting distlib<1,>=0.3.0 (from virtualenv)
  Downloading https://files.pythonhosted.org/packages/7d/29/694a3a4d7c0e1aef76092e9167fbe372e0f7da055f5dcf4e1313ec21d96a/distlib-0.3.0.zip (571kB)
Collecting importlib-metadata<2,>=0.12; python_version < "3.8" (from virtualenv)
  Downloading https://files.pythonhosted.org/packages/8b/03/a00d504808808912751e64ccf414be53c29cad620e3de2421135fcae3025/importlib_metadata-1.5.0-py2.py3-none-any.whl
Collecting appdirs<2,>=1.4.3 (from virtualenv)
  Downloading https://files.pythonhosted.org/packages/56/eb/810e700ed1349edde4cbdc1b2a21e28cdf115f9faf263f6bbf8447c1abf3/appdirs-1.4.3-py2.py3-none-any.whl
Collecting importlib-resources<2,>=1.0; python_version < "3.7" (from virtualenv)
  Downloading https://files.pythonhosted.org/packages/2f/f7/b4aa02cdd3ee7ebba375969d77c00826aa15c5db84247d23c89522dccbfa/importlib_resources-1.0.2-py2.py3-none-any.whl
Collecting filelock<4,>=3.0.0 (from virtualenv)
  Downloading https://files.pythonhosted.org/packages/14/ec/6ee2168387ce0154632f856d5cc5592328e9cf93127c5c9aeca92c8c16cb/filelock-3.0.12.tar.gz
Collecting contextlib2<1,>=0.6.0; python_version < "3.3" (from virtualenv)
  Downloading https://files.pythonhosted.org/packages/85/60/370352f7ef6aa96c52fb001831622f50f923c1d575427d021b8ab3311236/contextlib2-0.6.0.post1-py2.py3-none-any.whl
Collecting pathlib2<3,>=2.3.3; python_version < "3.4" and sys_platform != "win32" (from virtualenv)
  Downloading https://files.pythonhosted.org/packages/e9/45/9c82d3666af4ef9f221cbb954e1d77ddbb513faf552aea6df5f37f1a4859/pathlib2-2.3.5-py2.py3-none-any.whl
Collecting zipp>=0.5 (from importlib-metadata<2,>=0.12; python_version < "3.8"->virtualenv)
  Downloading https://files.pythonhosted.org/packages/60/85/668bca4a9ef474ca634c993e768f12bd99af1f06bb90bb2655bc538a967e/zipp-2.2.0.tar.gz
  Running setup.py (path:/tmp/pip-build-pW7K_Y/zipp/setup.py) egg_info for package zipp produced metadata for project name unknown. Fix your #egg=zipp fragments.
Collecting configparser>=3.5; python_version < "3" (from importlib-metadata<2,>=0.12; python_version < "3.8"->virtualenv)
  Downloading https://files.pythonhosted.org/packages/7a/2a/95ed0501cf5d8709490b1d3a3f9b5cf340da6c433f896bbe9ce08dbe6785/configparser-4.0.2-py2.py3-none-any.whl
Collecting typing; python_version < "3.5" (from importlib-resources<2,>=1.0; python_version < "3.7"->virtualenv)
  Downloading https://files.pythonhosted.org/packages/22/30/64ca29543375759dc589ade14a6cd36382abf2bec17d67de8481bc9814d7/typing-3.7.4.1-py2-none-any.whl
Collecting scandir; python_version < "3.5" (from pathlib2<3,>=2.3.3; python_version < "3.4" and sys_platform != "win32"->virtualenv)
  Downloading https://files.pythonhosted.org/packages/df/f5/9c052db7bd54d0cbf1bc0bb6554362bba1012d03e5888950a4f5c5dadc4e/scandir-1.10.0.tar.gz
Installing collected packages: six, distlib, contextlib2, unknown, scandir, pathlib2, configparser, importlib-metadata, appdirs, typing, importlib-resources, filelock, virtualenv
  Running setup.py install for distlib: started
    Running setup.py install for distlib: finished with status 'done'
  Running setup.py install for unknown: started
    Running setup.py install for unknown: finished with status 'done'
  Running setup.py install for scandir: started
    Running setup.py install for scandir: finished with status 'done'
  Running setup.py install for filelock: started
    Running setup.py install for filelock: finished with status 'done'
Successfully installed 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.0.2 pathlib2-2.3.5 scandir-1.10.0 six-1.14.0 typing-3.7.4.1 unknown-0.0.0 virtualenv-20.0.4
Removing intermediate container 92fa3d30b758
 ---> 6127ebfdaa58
Step 5/6 : WORKDIR /root
 ---> Running in 3998fd059d5e
Removing intermediate container 3998fd059d5e
 ---> 62a1db87d19c
Step 6/6 : RUN virtualenv venv
 ---> Running in c40b1478666a
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 7, in <module>
    from virtualenv.__main__ import run_with_catch
  File "/usr/local/lib/python2.7/dist-packages/virtualenv/__init__.py", line 3, in <module>
    from .run import cli_run
  File "/usr/local/lib/python2.7/dist-packages/virtualenv/run/__init__.py", line 9, in <module>
    from .plugin.activators import ActivationSelector
  File "/usr/local/lib/python2.7/dist-packages/virtualenv/run/plugin/activators.py", line 6, in <module>
    from .base import ComponentBuilder
  File "/usr/local/lib/python2.7/dist-packages/virtualenv/run/plugin/base.py", line 9, in <module>
    from importlib_metadata import entry_points
  File "/usr/local/lib/python2.7/dist-packages/importlib_metadata/__init__.py", line 9, in <module>
    import zipp
ImportError: No module named zipp
The command '/bin/sh -c virtualenv venv' returned a non-zero code: 1

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

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ IRC рдкрд░ рдХреБрдЫ рдорджрдж рдорд┐рд▓реА, pip install -U pip рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред

рдлрд┐рд░ рднреА, рдпрд╣ рдпрд╛ рддреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛:

  • рдирд┐рд╢реНрдЪрд┐рдд рдпрд╛
  • рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрд╛рдЗрдк рд╕рдВрд╕реНрдХрд░рдг рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ, рддреЛ рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ

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

рдЕрдЧрд░ рдореИрдВ рдЙрдмрдВрдЯреВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдХреЛ 18.04 рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВ рддреЛ рд╡рд╣реА рдХрдорд╛рдВрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ IRC рдкрд░ рдХреБрдЫ рдорджрдж рдорд┐рд▓реА, pip install -U pip рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред

рдлрд┐рд░ рднреА, рдпрд╣ рдпрд╛ рддреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛:

  • рдирд┐рд╢реНрдЪрд┐рдд рдпрд╛
  • рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрд╛рдЗрдк рд╕рдВрд╕реНрдХрд░рдг рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ, рддреЛ рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ

рд╣рдордиреЗ рдЕрднреА рдЗрд╕ рдкрд░ https://github.com/pypa/virtualenv/pull/1628 рдХреЗ рд╕рд╛рде рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ

Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3241, in <module>
    <strong i="7">@_call_aside</strong>
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3225, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3254, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 585, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 598, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 786, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'zipp>=0.5' distribution was not found and is required by importlib-metadata

рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╝рд┐рдк рдкреИрдХреЗрдЬ setuptools 41.0.0 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ setuptools 42.0.0 рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ .0

рдпрд╣ virtualenv рдореЗрдВ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдпрджрд┐ рдЖрдк pip install zipp рдПрдХ рд╣реА рдореБрджреНрджрд╛ рджреЗрдЦреЗрдВрдЧреЗ

рдпрд╣ рджреЛ рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИ:

  1. pip<9 рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП python_requires рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ
  2. python2.x рдкрд╛рдЗрдк py36-none-any рд╡реНрд╣реАрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрд░реЛрдд рд╕реЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  3. setuptools<30.3 рд╕реНрд░реЛрдд рд╕реЗ рдШреЛрд╖рд┐рдд рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ

рддреЛ рдЖрдк рдХреЗ рд╕рд╛рде рдЕрдВрдд:

  • python2.x рдкрд░ python3.6 + zipp рдПрдХ рдЯреВрдЯреА рд╕реНрдерд╛рдкрдирд╛ "рдЕрдЬреНрдЮрд╛рдд == 0.0.0" рдирд╛рдо рд╕реЗ

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдлрд┐рдХреНрд╕ рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ pip рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП virtualenv , рдпрд╛ zipapp рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

@gaborbernat рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ virtualenv рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ py2.py3-none-any рд╡реНрд╣реАрд▓ рд╡рд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рддрд░рд╣ рд╕реЗ pip==1.5

рд╣рд╛рдБ, рдпрд╣ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рд╣реИ; рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ; рдореИрдВ https://github.com/pypa/virtualenv/blob/master/setup.py#L4 рдХреЛ 42 ... рдкрд░ рдЙрдЫрд╛рд▓ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИред

рдЬрдм рдПрдХ рдкрд╣рд┐рдпрд╛ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡рд╣ рдХреЛрдб рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реЛрдЧрд╛, рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╣реЗрдЧрд╛: "рдЕрд╕рдорд░реНрдерд┐рдд рдкрд╛рдЗрдк рд╕рдВрд╕реНрдХрд░рдг, рдХреГрдкрдпрд╛ рдкрд╣рд▓реЗ 'рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЙрд▓-рдпреВ рдкрд╛рдЗрдк' рдЪрд▓рд╛рдПрдВ"ред

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

рдЖрдк рдЗрд╕реЗ рд░рдирдЯрд╛рдЗрдо рдкрд░ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рдкрд╛рдЗрдк рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдЪрд▓рдиреЗ рдкрд░ рдмрд╕ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@gaborbernat рдЬреЛ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдкрд╛рдЗрдк рдЕрднреА рднреА zipp рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ рдЪрд▓ рд░рд╣реЗ рдЕрдЬрдЧрд░ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИ (1.1 python2.x рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ):

$ virtualenv venv -ppython2
Running virtualenv with interpreter /usr/bin/python2
Already using interpreter /usr/bin/python2
New python executable in /tmp/y/venv/bin/python2
Also creating executable in /tmp/y/venv/bin/python
Installing setuptools, pip, wheel...
done.
$ . venv/bin/activate
$ pip install 'pip<9' 'setuptools>=42'
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
Collecting pip<9
  Using cached pip-8.1.2-py2.py3-none-any.whl (1.2 MB)
Requirement already satisfied: setuptools>=42 in ./venv/lib/python2.7/site-packages (44.0.0)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.0.2
    Uninstalling pip-20.0.2:
      Successfully uninstalled pip-20.0.2
Successfully installed pip-8.1.2
$ pip install zipp
Collecting zipp
  Downloading https://files.pythonhosted.org/packages/60/85/668bca4a9ef474ca634c993e768f12bd99af1f06bb90bb2655bc538a967e/zipp-2.2.0.tar.gz
Building wheels for collected packages: zipp
  Running setup.py bdist_wheel for zipp ... done
  Stored in directory: /home/asottile/.cache/pip/wheels/a0/1f/9d/d132b3fbc38b33322681e3a7830c0a29fce7f55c3a06b85c65
Successfully built zipp
Installing collected packages: zipp
Successfully installed zipp-2.2.0
You are using pip version 8.1.2, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

рдпрд╣ рд╕реЛрдЪрдХрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рддреЛ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рд╕рд╣реА рд╣реИ, рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ ... рдФрд░ рдпрд╣ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред

рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд░рдирд╛ рд╣реИ, рдЙрд╕реЗ https://github.com/pypa/virtualenv/issues/1618 рдХреЗ рдЕрдиреБрд╕рд╛рд░ @asottile рдиреЗ рдЬреЛ рдХрд╣рд╛ рд╣реИ, рдЙрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдирд╛ рд╣реИ

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реЛрдЧрд╛, рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╣реЗрдЧрд╛: "рдЕрд╕рдорд░реНрдерд┐рдд рдкрд╛рдЗрдк рд╕рдВрд╕реНрдХрд░рдг, рдХреГрдкрдпрд╛ рдкрд╣рд▓реЗ 'рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЙрд▓-рдпреВ рдкрд╛рдЗрдк' рдЪрд▓рд╛рдПрдВ"ред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкрд╛рдЗрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ (рдЬрд┐рд╕реЗ рдореИрдВ рдЖрдкрдХреЛ рдбреЙрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реВрдВ) рдЬрдм рдЖрдк рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реБрдП рдХрд┐ рдЖрдк рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдФрд░ рд╕рдВрджреЗрд╢ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдЙрдЯ рдСрдл рдбреЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ?

(рдпрд╣ рдПрдХ рдмрдпрд╛рдирдмрд╛рдЬреА рдпрд╛ рд╡реНрдпрдВрдЧреНрдпрд╛рддреНрдордХ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рд╣реИ - рдкрд╛рдпрдерди рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рднреА рд╣рдо рдирдП рдорд╛рдирдХ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЯреВрд▓ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЬ рддрдХред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрджреЗрд╢ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ) рдирд╣реАрдВ рд╣реИред

рдЬреЛ рдХрд┐ рдореИрдВ рдЖрдкрдХреЛ рдбреЙрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реВрдВ

рдХрд╣рд╛рдБ рдкреЗ? рдореИрдВ рд╕рднреА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдкрд╛рдпрдерди 2.7 рдИрдУрдПрд▓, рдЖрджрд┐ред

рд╡реИрд╕реЗ рднреА, рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдЬреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ Google рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЕрдм рдпрд╣ "ImportError: No рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо zipp рд╣реИ" рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддрд╛рдХрд┐ рд▓реЛрдЧ рдкрд╛рдЗрдк рдЕрдкрдбреЗрдЯ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХреЗрдВред

-рд╡рд┐рд╖рдпрдХ-рдкрд╛рдЗрдк-рд╕рдВрд╕реНрдХрд░рдг-рдЬрд╛рдВрдЪ

рдХреИрд╢рд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдореЗрдВ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИред рдореИрдВ 2.7 рдИрдУрдПрд▓ рд▓рд╛рд▓ рд░реЗрдЦрд╛рдУрдВ рдХреА рддрд░рд╣ рдХреБрдЫ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рд╡реЗ рдмрд╣реБрдд рд╣реА рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдЙрд╕ рдЕрд░реНрдерд╣реАрди рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

You are using pip version 8.1.1, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

рд░реЗрдЦрд╛ред рдмреЗрд╢рдХ рд╣рд░ рдХреЛрдИ рдЗрд╕реЗ Dockerfiles рдореЗрдВ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬреИрд╕реЗ рд╣реА 20.0.3 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдкрд╛рдЗрдк рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЕрднреА рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ:

$ pip3 --version
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
pip 20.2.3 from /Users/jackjack/Library/Python/3.7/lib/python/site-packages/pip (python 3.7)
$ pip3 install -U pip
# removing repeated "pip is being invoked by an old script wrapper" messages
Defaulting to user installation because normal site-packages is not writeable
Requirement already up-to-date: pip in /Users/jackjack/Library/Python/3.7/lib/python/site-packages (20.2.3)
$ pip3 install -U pip3
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement pip3 (from versions: none)
ERROR: No matching distribution found for pip3
$ pip3 install -U virtualenv
Defaulting to user installation because normal site-packages is not writeable
Requirement already up-to-date: virtualenv in /Users/jackjack/Library/Python/3.7/lib/python/site-packages (20.0.33)
Requirement already satisfied, skipping upgrade: distlib<1,>=0.3.1 in /Users/jackjack/Library/Python/3.7/lib/python/site-packages (from virtualenv) (0.3.1)
Requirement already satisfied, skipping upgrade: appdirs<2,>=1.4.3 in /Users/jackjack/Library/Python/3.7/lib/python/site-packages (from virtualenv) (1.4.4)
Requirement already satisfied, skipping upgrade: importlib-metadata<3,>=0.12; python_version < "3.8" in /Users/jackjack/Library/Python/3.7/lib/python/site-packages (from virtualenv) (2.0.0)
Requirement already satisfied, skipping upgrade: six<2,>=1.9.0 in /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/site-packages (from virtualenv) (1.12.0)
Requirement already satisfied, skipping upgrade: filelock<4,>=3.0.0 in /Users/jackjack/Library/Python/3.7/lib/python/site-packages (from virtualenv) (3.0.12)
Requirement already satisfied, skipping upgrade: zipp>=0.5 in /Users/jackjack/Library/Python/3.7/lib/python/site-packages (from importlib-metadata<3,>=0.12; python_version < "3.8"->virtualenv) (3.3.0)
$ sudo /usr/bin/easy_install virtualenv
Searching for virtualenv
Best match: virtualenv 20.0.33
Processing virtualenv-20.0.33-py2.7.egg
virtualenv 20.0.33 is already the active version in easy-install.pth
Installing virtualenv script to /usr/local/bin

Using /Library/Python/2.7/site-packages/virtualenv-20.0.33-py2.7.egg
Processing dependencies for virtualenv
Searching for zipp>=0.4
Reading https://pypi.org/simple/zipp/
Downloading https://files.pythonhosted.org/packages/7b/50/8a41d217ae898bb7a422a55a2a2afc22dfaab42b7bce5fe771a3892fe5e7/zipp-3.3.0.tar.gz#sha256=64ad89efee774d1897a58607895d80789c59778ea02185dd846ac38394a8642b
Best match: zipp 3.3.0
Processing zipp-3.3.0.tar.gz
Writing /tmp/easy_install-QuPyHI/zipp-3.3.0/setup.cfg
Running zipp-3.3.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-QuPyHI/zipp-3.3.0/egg-dist-tmp-2lSPpU
  File "build/bdist.macosx-10.15-x86_64/egg/zipp.py", line 240
    def open(self, mode='r', *args, pwd=None, **kwargs):
                                      ^
SyntaxError: invalid syntax

zip_safe flag not set; analyzing archive contents...
Removing /Library/Python/2.7/site-packages/zipp-0.0.0-py2.7.egg
Copying zipp-0.0.0-py2.7.egg to /Library/Python/2.7/site-packages
zipp 0.0.0 is already the active version in easy-install.pth

Installed /Library/Python/2.7/site-packages/zipp-0.0.0-py2.7.egg
error: The 'zipp>=0.4' distribution was not found and is required by importlib-resources
$ /usr/bin/easy_install virtualenv
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/test-easy-install-20543.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /Library/Python/2.7/site-packages/

Perhaps your account does not have write access to this directory?  If the
installation directory is a system-owned directory, you may need to sign in
as the administrator or "root" account.  If you do not have administrative
access to this machine, you may wish to choose a different installation
directory, preferably one that is listed in your PYTHONPATH environment
variable.

For information on other options, you may wish to consult the
documentation at:

  https://setuptools.readthedocs.io/en/latest/easy_install.html

Please make the appropriate changes for your system and try again.

рдЕрдЧрд░ рдореИрдВ sudo pip3 install 'd virtualenv рднреА рдРрд╕реА рд╣реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХрд░рддрд╛ рд╣реВрдВ

easy_install рдкрд╛рдЗрдк рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрднреА рдордд рдХрд░реЛ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ

рд╡рд┐рднрд┐рдиреНрди рдЧрд╛рдЗрдб (рдЗрд╕рдореЗрдВ рдПрдХ рд╕рд╣рд┐рдд) рдХрд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рд╣реИ (рдЬрд┐рд╕рд╕реЗ virtualenv pip рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди PATH рдкрд░ рдЦреЛрдЬрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ)ред рдЖрдк рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВрдЧреЗ?

рд╣рд╛рдБ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХреА рд╕рд▓рд╛рд╣ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ

рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк --user рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ PATH рдкрд░ рд╕рд╣реА рдмрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╢рд╛рдпрдж /Users/jackjack/Library/Python/3.7/bin рдпрджрд┐ рдореБрдЭреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдерд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдордХреЛрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ)

рдкрд╣рд▓реА рд╕реНрдерд╛рдкрдирд╛ рдиреЗ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреА рд╣реЛрдЧреА (рдЖрдк рд╢рд╛рдпрдж pip3 uninstall virtualenv && pip3 install virtualenv рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рд╣рдореНрдо, рджрд┐рд▓рдЪрд╕реНрдкред рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА /usr/local/bin/virtualenv :

#!/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
# EASY-INSTALL-ENTRY-SCRIPT: 'virtualenv==20.0.33','console_scripts','virtualenv'
__requires__ = 'virtualenv==20.0.33'
import re
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(
        load_entry_point('virtualenv==20.0.33', 'console_scripts', 'virtualenv')()
    )

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╢реЗрдмрдВрдЧ рдореЗрдВ 2.7 рд╕реЗ рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдВрдЧ рд╣реИ, рдЬреЛ рд╢рд╛рдпрдж рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕реНрд░реЛрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ pip3 рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рд╣реВрдВред

рдореБрдЭреЗ рдЙрд╕ рдкрде рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдерд╛ (рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реИ - рдФрд░ рдЬреЛ рдореИрдВрдиреЗ рдкреБрди: рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ pip3 install virtualenv рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рднреА рдХрд┐рдпрд╛ рдерд╛!) тАЛтАЛ_Before_ /usr/local/bin рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдкреВрд░реНрд╡рддрд╛ рд▓рд┐рдпрд╛ рд╣реИред рдЕрдм рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ - рдзрдиреНрдпрд╡рд╛рдж!

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдПрдХ рдХреА рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди lol, easy_install рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ (рдЬреЛ рдХрд┐ рдмрдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬрдм easy_install рдЬрдЧрд╣ рдЯреЗрдмрд▓ рдкрд░ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдкрд╛рдЗрдк)

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

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

LeonSpors picture LeonSpors  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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

Tset-Noitamotua picture Tset-Noitamotua  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ