how to create virtualenv with pypy?

Question:

running the following command

virtualenv -p /usr/local/bin/pypy pypy

exits with error like

Running virtualenv with interpreter /usr/local/bin/pypy
New pypy executable in pypy/bin/pypy
debug: WARNING: Library path not found, using compiled-in sys.path.
debug: WARNING: 'sys.prefix' will not be set.
debug: WARNING: Make sure the pypy binary is kept inside its tree of files.
debug: WARNING: It is ok to create a symlink to it from somewhere else.
'import site' failed
AttributeError: 'module' object has no attribute 'prefix'
ERROR: The executable pypy/bin/pypy is not functioning
ERROR: It thinks sys.prefix is u'/Users/myname' (should be u'/Users/myname/pypy')
ERROR: virtualenv is not compatible with this system or executable

I’m running Mac OS X 10.8.1 (Mountain Lion) with CPython 2.7.3 and installed pypy 1.9 using Brew. virtualenv’s version is 1.8.4

Using pre-built pypy binary for Mac OS X downloaded directly from pypy’s website doesn’t make any difference

Asked By: minorblend

||

Answers:

This appears to be a regression in 1.8.4. While trying this out on my system everything worked fine with virtualenv 1.8.2, then I upgraded and now I get the same error as you.

Answered By: Michael Merickel

I got the same error on Windows using virtualenv 1.8.2. Also similar problems with 1.9 and 1.10. What worked for me was to run it once to make the directory, copy missing files, then run again to complete it.

virtualenv -p c:binpypypypy.exe pypy
copy c:binpypylib_pypy virtualenvspypy
copy c:binpypylib-python virtualenvspypy
virtualenv -p c:binpypypypy.exe pypy
Answered By: DaveSawyer

With pypy-4.0.1 and virtualenv 14.0.3, out of the box I get an error:

Q:>c:pypybinvirtualenv -p c:pypypypy.exe my_pypy_virtualenv
Already using interpreter c:pypypypy.exe
New pypy executable in Q:my_pypy_virtualenvbinpypy.exe
debug: OperationError:
debug:  operror-type: ImportError
debug:  operror-value: No module named UserDict
ERROR: The executable Q:my_pypy_virtualenvbinpypy.exe is not functioning
ERROR: It thinks sys.prefix is u'q:\' (should be u'q:\my_pypy_virtualenv')
ERROR: virtualenv is not compatible with this system or executable
Note: some Windows users have reported this error when they installed Python for "Only this user" or have multiple versions of Python installed. Copying the appropriate PythonXX.dll to the virtualenv Scripts/ directory may fix this problem.

Searching the original pypy install for UserDict*, I found UserDict.py in lib-python2.7 but in the virtualenv’s lib-python2.7 there was only userdict.py and none of the capitalized User files. Following the example of the other solutions, I removed the virtualenv’s userdict.py and copied the original User* files, and reran the virtualenv command, and it ran without error.

Answered By: rakslice

For windows this worked for me :


python -m virtualenv -p <Your PYPY installed pathpypy3.exe> <venv_name>

Answered By: Viraj Wadate

I got the solution
Just use pypy3.exe instead of pypy.exe there are two .exe in downloaded folder

virtualenv -p C:/pypy3.7-v7.3.5-win64/pypy3.7-v7.3.5-win64/pypy3w.exe <folder_name>

By default python comes with venv. But venv has no -p
Install virtualenv using pip
Then use direct virtualenv -p path/pypy3.exe <folder_name>
no need to use python -m

Answered By: Ohm Dios
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.