как создать virtualenv с помощью pypy?

выполнение следующей команды

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

завершается с ошибкой, как

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

Я запускаю Mac OS X 10.8.1 (Mountain Lion) с CPython 2.7.3 и установил pypy 1.9 с помощью Brew. версия virtualenv-1.8.4

использование встроенного PyPy binary для Mac OS X, загруженного непосредственно с веб-сайта pypy, не имеет никакого значения

3 ответов


Это, по-видимому, регрессия в 1.8.4. При попытке этого в моей системе все работало нормально с virtualenv 1.8.2, затем я обновился, и теперь я получаю ту же ошибку, что и вы.


Я получил ту же ошибку в Windows, используя virtualenv 1.8.2. Также похожие проблемы с 1.9 и 1.10. Что сработало для меня, так это запустить его один раз, чтобы сделать каталог, скопировать отсутствующие файлы, а затем запустить снова, чтобы завершить его.

virtualenv -p c:\bin\pypy\pypy.exe pypy
copy c:\bin\pypy\lib_pypy \virtualenvs\pypy
copy c:\bin\pypy\lib-python \virtualenvs\pypy
virtualenv -p c:\bin\pypy\pypy.exe pypy

С pypy-4.0.1 и virtualenv 14.0.3, из коробки я получаю сообщение об ошибке:

Q:\>c:\pypy\bin\virtualenv -p c:\pypy\pypy.exe my_pypy_virtualenv
Already using interpreter c:\pypy\pypy.exe
New pypy executable in Q:\my_pypy_virtualenv\bin\pypy.exe
debug: OperationError:
debug:  operror-type: ImportError
debug:  operror-value: No module named UserDict
ERROR: The executable Q:\my_pypy_virtualenv\bin\pypy.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.

Поиск оригинальной установки pypy для UserDict*, Я нашел UserDict.py на lib-python.7 но в virtualenv это lib-python.7 было только userdict.py и ни один из заглавных User файлы. Следуя примеру других решений, я удалил virtualenv userdict.py и скопировал оригинал User* файлы и перезапустил virtualenv команда, и она работала без ошибок.