[Pytest-commit] Issue #742: Difference of sys.path between running py.test and testdir.runpytest (pytest-dev/pytest)
Daniel Hahler
issues-reply at bitbucket.org
Mon May 11 12:52:30 CEST 2015
New issue 742: Difference of sys.path between running py.test and testdir.runpytest
https://bitbucket.org/pytest-dev/pytest/issue/742/difference-of-syspath-between-running
Daniel Hahler:
I've noticed that pytest's runpytest method fails when pies2overrides is
installed in the virtualenv, which adds a reprlib.py file into site-packages.
While this is clearly an [issue with
pies](https://github.com/timothycrosley/pies/issues/44), pytest is
triggering it by calling its script from this site-packages dir.
% virtualenv venv
% venv/bin/pip install pytest pies2overrides==2.6.5
# Simulate `testdir.runpytest`:
% venv/bin/python venv/lib/python3.4/site-packages/pytest.py
Maybe pytest could use another approach here to call itself?
And/or something like `sys.path.pop(0)` in the script?
I might be missing something here, of course, but it seems like the behaviour/setup of the Python path differs between running `py.test` and `runpytest`, which should be avoided.
Output:
% virtualenv venv
Using base prefix '/home/daniel/.pyenv/versions/3.4.3'
New python executable in venv/bin/python3.4
Also creating executable in venv/bin/python
Installing setuptools, pip...done.
% venv/bin/pip install pytest pies2overrides==2.6.5
Collecting pytest
Using cached pytest-2.7.0.tar.gz
Collecting pies2overrides==2.6.5
Using cached pies2overrides-2.6.5-py2.py3-none-any.whl
Collecting py>=1.4.25 (from pytest)
Using cached py-1.4.27-py2.py3-none-any.whl
Collecting ipaddress (from pies2overrides==2.6.5)
Using cached ipaddress-1.0.7.tar.gz
Installing collected packages: py, pytest, ipaddress, pies2overrides
Running setup.py install for pytest
Running setup.py install for ipaddress
Successfully installed ipaddress-1.0.7 pies2overrides-2.6.5 py-1.4.27 pytest-2.7.0
% venv/bin/python venv/lib/python3.4/site-packages/pytest.py
Traceback (most recent call last):
File "venv/lib/python3.4/site-packages/pytest.py", line 9, in <module>
import pytest
File "/tmp/t/venv/lib/python3.4/site-packages/pytest.py", line 14, in <module>
from _pytest.config import main, UsageError, _preloadplugins, cmdline
File "/tmp/t/venv/lib/python3.4/site-packages/_pytest/config.py", line 2, in <module>
import argparse
File "/home/daniel/.pyenv/versions/3.4.3/lib/python3.4/argparse.py", line 86, in <module>
import collections as _collections
File "/tmp/t/venv/lib/python3.4/collections/__init__.py", line 17, in <module>
from reprlib import recursive_repr as _recursive_repr
File "/tmp/t/venv/lib/python3.4/site-packages/reprlib.py", line 3, in <module>
from repr import *
ImportError: No module named 'repr'
shell returned 1
More information about the pytest-commit
mailing list