Skip to content

virtualenv -p python3.4 fails with ImportError: No module named 'copy_reg' if you have pies2overrides installed #671

Closed
@mgedmin

Description

@mgedmin

I've created a Python 2.7 virtualenv for various tools I want to have around and added its bin directory to my PATH. One of the tools I've installed is virtualenv itself (possibly a newer version than the one I used to create my ~/.venv).

When I try to use the latest upstream virtualenv (1.11.6) to create a Python 3 virtualenv with

~/.venv/bin/virtualenv -p /usr/bin/python3.4 /tmp/py34

I get the following error:

Running virtualenv with interpreter /usr/bin/python3.4
Traceback (most recent call last):
  File "/home/mg/.venv/local/lib/python2.7/site-packages/virtualenv.py", line 8, in <module>
    import base64
  File "/usr/lib/python3.4/base64.py", line 9, in <module>
    import re
  File "/usr/lib/python3.4/re.py", line 324, in <module>
    import copyreg
  File "/home/mg/.venv/lib/python2.7/site-packages/copyreg.py", line 3, in <module>
    from copy_reg import *
ImportError: No module named 'copy_reg'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 53, in apport_excepthook
    if not enabled():
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 24, in enabled
    import re
  File "/usr/lib/python3.4/re.py", line 324, in <module>
    import copyreg
  File "/home/mg/.venv/lib/python2.7/site-packages/copyreg.py", line 3, in <module>
    from copy_reg import *
ImportError: No module named 'copy_reg'

Original exception was:
Traceback (most recent call last):
  File "/home/mg/.venv/local/lib/python2.7/site-packages/virtualenv.py", line 8, in <module>
    import base64
  File "/usr/lib/python3.4/base64.py", line 9, in <module>
    import re
  File "/usr/lib/python3.4/re.py", line 324, in <module>
    import copyreg
  File "/home/mg/.venv/lib/python2.7/site-packages/copyreg.py", line 3, in <module>
    from copy_reg import *
ImportError: No module named 'copy_reg'

It seems wrong to see Python 3.4 and Python 2.7 stdlib paths intermixed in the traceback.

I'm on Ubuntu 14.10 and Ubuntu's python-virtualenv package works fine with Python 3.x (or 2.x, but not pypy 2.3.1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions