Подтвердить что ты не робот

Как создать 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 для Mac OS X, загружаемого непосредственно с сайта pypy, не имеет никакого значения.

4b9b3361

Ответ 1

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

Ответ 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

Ответ 3

С 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\2.7, но в virtualenv lib-python\2.7 был только UserDict.py и ни один из заглавных User файлов. Следуя примеру других решений, я удалил virtualenv UserDict.py и скопировал исходные файлы User* и перезапустил команду virtualenv, и он бежал без ошибок.