Virtualenv: рдПрдХ рдЕрдЬрдЧрд░ 2.7 рд╡рд╛рддрд╛рд╡рд░рдг рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛

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

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

рдЙрдмрдВрдЯреВ 18.04 рдбреЙрдХрдЯрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдЯреЙрдХреНрд╕ virtualenv --no-download --python /usr/bin/python2.7 py27 рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред Virtualenv 20.0.10 рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред 20.0.11 рддрдХ, рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:

TypeError: unsupported operand type(s) for /: 'tuple' and 'str'

рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдХрдо рд╕реЗ рдХрдо рдкреНрд░рджрд╛рди рдХрд░реЗрдВ:

  • рдУрдПрд╕: рдЙрдмрдВрдЯреВ 18.04
  • рдореЗрдЬрдмрд╛рди рдЕрдЬрдЧрд░ рдХрд╛ pip list рдЬрд╣рд╛рдВ virtualenv рд╕реНрдерд╛рдкрд┐рдд рд╣реИ:
Package                       Version              Location                     
----------------------------- -------------------- ----------------------------------
amqp                          2.5.2
appdirs                       1.4.3
attrs                         19.3.0
bcrypt                        3.1.7
billiard                      3.6.3.0
bleach                        3.1.3
boto3                         1.12.24
botocore                      1.15.24
cachetools                    4.0.0
celery                        4.4.2
certifi                       2019.11.28
cffi                          1.14.0
chardet                       3.0.4
cheroot                       8.3.0
CherryPy                      18.5.0
click                         7.1.1
click-plugins                 1.1.1
cryptography                  2.8
ctk-cli                       1.5
decorator                     4.4.2
diskcache                     4.1.0
distlib                       0.3.0
docker                        4.2.0
docutils                      0.15.2
dogpile.cache                 0.9.0
filelock                      3.0.12
fusepy                        3.0.1
GDAL                          3.1.0
girder                        3.0.11               /opt/girder                  
girder-archive-access         0.2.0
girder-client                 3.0.11               /opt/girder/clients/python   
girder-dicom-viewer           3.0.11
girder-homepage               3.0.11
girder-jobs                   3.0.11
girder-large-image            1.0.5.dev13+gc67ca6f /opt/large_image/girder      
girder-large-image-annotation 1.0.5.dev13+gc67ca6f /opt/large_image/girder_annotation
girder-ldap                   3.0.11
girder-resource-path-tools    1.0.1.dev2
girder-slicer-cli-web         1.0.2.dev28+g9db4a50 /opt/slicer_cli_web          
girder-virtual-folders        3.0.11
girder-worker                 0.6.1.dev23+g5810d1d /opt/girder_worker           
girder-worker-utils           0.8.7.dev2+g856849e  /opt/girder_worker_utils     
girder-xtk-demo               0.4.0
Glymur                        0.9.1
histomicsui                   1.0.0.dev39+ga7d0e3f /opt/HistomicsUI             
idna                          2.9
importlib-metadata            1.5.0
importlib-resources           1.4.0
jaraco.classes                3.1.0
jaraco.collections            3.0.0
jaraco.functools              3.0.0
jaraco.text                   3.2.0
jeepney                       0.4.3
Jinja2                        2.11.1
jmespath                      0.9.5
jsonpickle                    1.3
jsonschema                    3.2.0
keyring                       21.2.0
kombu                         4.6.8
large-image                   1.0.5.dev13+gc67ca6f /opt/large_image             
large-image-source-dummy      1.0.5.dev13+gc67ca6f /opt/large_image/sources/dummy
large-image-source-gdal       1.0.5.dev13+gc67ca6f /opt/large_image/sources/gdal
large-image-source-mapnik     1.0.5.dev13+gc67ca6f /opt/large_image/sources/mapnik
large-image-source-nd2        1.0.5.dev13+gc67ca6f /opt/large_image/sources/nd2 
large-image-source-ometiff    1.0.5.dev13+gc67ca6f /opt/large_image/sources/ometiff
large-image-source-openjpeg   1.0.5.dev13+gc67ca6f /opt/large_image/sources/openjpeg
large-image-source-openslide  1.0.5.dev13+gc67ca6f /opt/large_image/sources/openslide
large-image-source-pil        1.0.5.dev13+gc67ca6f /opt/large_image/sources/pil 
large-image-source-test       1.0.5.dev13+gc67ca6f /opt/large_image/sources/test
large-image-source-tiff       1.0.5.dev13+gc67ca6f /opt/large_image/sources/tiff
large-image-tasks             1.0.5.dev13+gc67ca6f /opt/large_image/tasks       
libtiff                       0.5.0
lxml                          4.5.0
Mako                          1.1.2
mapnik                        4.0.0
MarkupSafe                    1.1.1
more-itertools                8.2.0
nd2reader                     3.2.3
numpy                         1.18.2
openslide-python              1.1.1
packaging                     20.3
palettable                    3.3.0
passlib                       1.7.2
pbr                           5.4.4
Pillow                        7.0.0
PIMS                          0.4.1
pip                           20.0.2
pkg-resources                 0.0.0
pkgconfig                     1.5.1
pkginfo                       1.5.0.1
pluggy                        0.13.1
portend                       2.6
psutil                        5.7.0
py                            1.8.1
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pycparser                     2.20
pydicom                       1.4.2
Pygments                      2.6.1
pyldap                        3.0.0.post1
pylibmc                       1.6.1
pymongo                       3.10.1
pyOpenSSL                     19.1.0
pyparsing                     2.4.6
pyproj                        2.6.0
pyrsistent                    0.15.7
python-dateutil               2.8.1
python-ldap                   3.2.0
pytz                          2019.3
pyvips                        2.1.12
PyYAML                        5.3.1
readme-renderer               25.0
requests                      2.23.0
requests-toolbelt             0.9.1
s3transfer                    0.3.3
SecretStorage                 3.1.2
setuptools                    46.0.0
setuptools-scm                3.5.0
six                           1.14.0
slicerator                    1.0.0
stevedore                     1.32.0
tempora                       2.1.0
toml                          0.10.0
tox                           3.14.5
tqdm                          4.43.0
twine                         3.1.1
ujson                         2.0.2
urllib3                       1.25.8
vine                          1.3.0
virtualenv                    20.0.12
webencodings                  0.5.1
websocket-client              0.57.0
xmltodict                     0.12.0
zc.lockfile                   2.0
zipp                          3.1.0

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

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

306 setup logging to NOTSET [DEBUG report:43]
375 find interpreter for spec PythonSpec(path=/usr/bin/python2.7) [INFO builtin:44]
377 Attempting to acquire lock 139669810685880 on /home/ubuntu/.local/share/virtualenv/py_info/20.0.12/beb4f305451b4835b36a63cb1c75e625a7251cf8d76b65be2f5856eee68cb551.lock [DEBUG filelock:270]
378 Lock 139669810685880 acquired on /home/ubuntu/.local/share/virtualenv/py_info/20.0.12/beb4f305451b4835b36a63cb1c75e625a7251cf8d76b65be2f5856eee68cb551.lock [INFO filelock:274]
378 get PythonInfo from /home/ubuntu/.local/share/virtualenv/py_info/20.0.12/beb4f305451b4835b36a63cb1c75e625a7251cf8d76b65be2f5856eee68cb551.json for /usr/bin/python2.7 [DEBUG cached_py_info:79]
379 Attempting to release lock 139669810685880 on /home/ubuntu/.local/share/virtualenv/py_info/20.0.12/beb4f305451b4835b36a63cb1c75e625a7251cf8d76b65be2f5856eee68cb551.lock [DEBUG filelock:315]
380 Lock 139669810685880 released on /home/ubuntu/.local/share/virtualenv/py_info/20.0.12/beb4f305451b4835b36a63cb1c75e625a7251cf8d76b65be2f5856eee68cb551.lock [INFO filelock:318]
380 proposed PythonInfo(spec=CPython2.7.17.final.0-64, exe=/usr/bin/python2.7, platform=linux2, version='2.7.17 (default, Nov  7 2019, 10:07:09) \n[GCC 7.4.0]', encoding_fs_io=UTF-8-None) [INFO builtin:50]
380 accepted PythonInfo(spec=CPython2.7.17.final.0-64, exe=/usr/bin/python2.7, platform=linux2, version='2.7.17 (default, Nov  7 2019, 10:07:09) \n[GCC 7.4.0]', encoding_fs_io=UTF-8-None) [DEBUG builtin:52]
383 filesystem is case-sensitive [DEBUG info:28]
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/__main__.py", line 62, in <module>
    run_with_catch()
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/__main__.py", line 51, in run_with_catch
    run(args, options)
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/__main__.py", line 20, in run
    session = cli_run(args, options)
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/run/__init__.py", line 27, in cli_run
    session = session_via_cli(args, options)
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/run/__init__.py", line 35, in session_via_cli
    parser = build_parser(args, options)
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/run/__init__.py", line 75, in build_parser
    CreatorSelector(interpreter, parser),
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/run/plugin/creators.py", line 15, in __init__
    creators, self.key_to_meta, self.describe, self.builtin_key = self.for_interpreter(interpreter)
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/run/plugin/creators.py", line 25, in for_interpreter
    meta = creator_class.can_create(interpreter)
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/create/via_global_ref/builtin/via_global_self_do.py", line 33, in can_create
    for src in cls.sources(interpreter):
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/create/via_global_ref/builtin/cpython/cpython2.py", line 66, in sources
    for src in super(CPython2Posix, cls).sources(interpreter):
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/create/via_global_ref/builtin/cpython/cpython2.py", line 21, in sources
    for src in super(CPython2, cls).sources(interpreter):
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/create/via_global_ref/builtin/python2/python2.py", line 76, in sources
    compiled_file, to_compiled, compiled_exists = cls.from_stdlib(mappings, "{}.pyc".format(req))
  File "/home/ubuntu/.virtualenvs/girder/lib/python3.6/site-packages/virtualenv/create/via_global_ref/builtin/python2/python2.py", line 88, in from_stdlib
    result = (mappings[0] / name, mappings[1], False)
TypeError: unsupported operand type(s) for /: 'tuple' and 'str'

рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ #1728 рдореЗрдВ https://github.com/pypa/virtualenv/blob/master/src/virtualenv/create/via_global_ref/builtin/python2/python2.py#L79 -L85 рдкрд░ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рд▓рд╛рдЗрди (https://github.com/pypa/virtualenv/blob/master/src/virtualenv/create/via_global_ref/builtin/python2/python2.py#L85)

        return mappings[0] / name, mappings[1], False

рд╢рд╛рдпрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

        return mappings[0][0] / name, mappings[0][1], False

рдЪреВрдВрдХрд┐ рдореИрдкрд┐рдВрдЧ рдЯреБрдкрд▓реНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред

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

@manthe рдЙрддреНрдХреГрд╖реНрдЯ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рд╕рд╣реА рд╣реИрдВ

Fwiw, рдореИрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИ unicode рдХреЗ рдмрдЬрд╛рдп str :

Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 11, in <module>
    sys.exit(run_with_catch())
  File "/usr/local/lib/python2.7/site-packages/virtualenv/__main__.py", line 51, in run_with_catch
    run(args, options)
  File "/usr/local/lib/python2.7/site-packages/virtualenv/__main__.py", line 20, in run
    session = cli_run(args, options)
  File "/usr/local/lib/python2.7/site-packages/virtualenv/run/__init__.py", line 27, in cli_run
    session = session_via_cli(args, options)
  File "/usr/local/lib/python2.7/site-packages/virtualenv/run/__init__.py", line 35, in session_via_cli
    parser = build_parser(args, options)
  File "/usr/local/lib/python2.7/site-packages/virtualenv/run/__init__.py", line 75, in build_parser
    CreatorSelector(interpreter, parser),
  File "/usr/local/lib/python2.7/site-packages/virtualenv/run/plugin/creators.py", line 15, in __init__
    creators, self.key_to_meta, self.describe, self.builtin_key = self.for_interpreter(interpreter)
  File "/usr/local/lib/python2.7/site-packages/virtualenv/run/plugin/creators.py", line 25, in for_interpreter
    meta = creator_class.can_create(interpreter)
  File "/usr/local/lib/python2.7/site-packages/virtualenv/create/via_global_ref/builtin/via_global_self_do.py", line 33, in can_create
    for src in cls.sources(interpreter):
  File "/usr/local/lib/python2.7/site-packages/virtualenv/create/via_global_ref/builtin/cpython/cpython2.py", line 66, in sources
    for src in super(CPython2Posix, cls).sources(interpreter):
  File "/usr/local/lib/python2.7/site-packages/virtualenv/create/via_global_ref/builtin/cpython/cpython2.py", line 21, in sources
    for src in super(CPython2, cls).sources(interpreter):
  File "/usr/local/lib/python2.7/site-packages/virtualenv/create/via_global_ref/builtin/python2/python2.py", line 72, in sources
    module_file, to_module, module_exists = cls.from_stdlib(mappings, "{}.py".format(req))
  File "/usr/local/lib/python2.7/site-packages/virtualenv/create/via_global_ref/builtin/python2/python2.py", line 85, in from_stdlib
    return mappings[0] / name, mappings[1], False
TypeError: unsupported operand type(s) for /: 'tuple' and 'unicode'

рдлрд┐рдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛

https://pypi.org/project/virtualenv/20.0.13/ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд░реА

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

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

mnm678 picture mnm678  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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

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