-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Labels
bugSomething isn't workingSomething isn't working
Description
riot has an error with multiple virtualenvs paths, raising unexpected ImportErrors, an example of this behavior is with backport modules. Steps to reproduce the error:
Files
riotfile.py file:
from riot import Venv
from riot import latest
venv = Venv(
pkgs={
"mock": latest,
},
venvs=[
Venv(
name="test_error",
pys=["2.7"],
command="python {cmdargs} test_riot_error/prueba.py",
pkgs={
"six": latest,
"django": latest,
"django-import-export": latest,
},
venvs=[
Venv(
pys=["2.7"],
command="python {cmdargs} test_riot_error/test_error.py",
pkgs={
"importlib_metadata": "<=1.4.0",
"backports.shutil-get-terminal-size": latest,
},
),
]
),
Venv(
pys=["2.7"],
name="test_ok",
command="python {cmdargs} test_riot_error/test_error.py",
venvs=[
Venv(
pys=["2.7"],
command="python {cmdargs} test_riot_error/test_error.py",
pkgs={
"django-import-export": ">=1.2.0",
"importlib_metadata": "<=1.4.0",
},
),
]
)
]
)
test_riot_error/test_error.py file:
import importlib_metadata
print("importlib_metadata")
print(importlib_metadata)
Run riot
riot -v run -r
x test_error: [190db53] pythonInterpreter(_hint='2.7') 'mock' 'six' 'django' 'django-import-export' 'importlib_metadata<=1.4.0' 'backports.shutil-get-terminal-size'
✓ test_ok: [84035a7] pythonInterpreter(_hint='2.7') 'mock' 'django-import-export>=1.2.0' 'importlib_metadata<=1.4.0'
Error:
Traceback (most recent call last):
File "test_riot_error/prueba.py", line 1, in <module>
import importlib_metadata
File "/home/alberto.vara/projects/system-tests/.riot/venv_py2718_importlib_metadata140_backportsshutil-get-terminal-size/lib/python2.7/site-packages/importlib_metadata/__init__.py", line 16, in <module>
from ._compat import (
File "/home/alberto.vara/projects/system-tests/.riot/venv_py2718_importlib_metadata140_backportsshutil-get-terminal-size/lib/python2.7/site-packages/importlib_metadata/_compat.py", line 19, in <module>
from backports.configparser import ConfigParser
ImportError: No module named configparser
Virtualenvs paths:
.riot/venv_py2718_django-import-export120_importlib_metadata140/lib/python2.7/site-packages/backports/
├── configparser
│ ├── helpers.py
│ ├── helpers.pyc
│ ├── __init__.py
│ └── __init__.pyc
├── csv.py
├── csv.pyc
├── __init__.py
└── __init__.pyc
.riot/venv_py2718_importlib_metadata140_backportsshutil-get-terminal-size/lib/python2.7/site-packages/backports
├── configparser
│ ├── helpers.py
│ ├── helpers.pyc
│ ├── __init__.py
│ └── __init__.pyc
├── __init__.py
├── __init__.pyc
└── shutil_get_terminal_size
├── get_terminal_size.py
├── get_terminal_size.pyc
├── __init__.py
└── __init__.pyc
.riot/venv_py2718_six_django_django-import-export/lib/python2.7/site-packages/backports
├── csv.py
└── csv.pyc
Issue detected in this PR DataDog/dd-trace-py#4514
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working