web-dev-qa-db-fra.com

comment créer virtualenv avec Pypy?

lancer la commande suivante

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

sort avec une erreur comme

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

J'utilise Mac OS X 10.8.1 (Mountain Lion) avec CPython 2.7.3 et j'ai installé Pypy 1.9 à l'aide de Brew. la version de virtualenv est 1.8.4

L'utilisation de binaires pypy préconfigurés pour Mac OS X téléchargés directement sur le site Web de pypy ne fait aucune différence

26
minorblend

Cela semble être une régression en 1.8.4. En essayant ceci sur mon système, tout fonctionnait bien avec virtualenv 1.8.2, puis je me suis mis à niveau et maintenant je reçois la même erreur que vous.

22
Michael Merickel

J'ai eu la même erreur sur Windows en utilisant virtualenv 1.8.2. Également des problèmes similaires avec 1.9 et 1.10. Ce qui a fonctionné pour moi a été de l'exécuter une fois pour créer le répertoire, copier les fichiers manquants, puis à nouveau l'exécuter.

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
1
DaveSawyer

Avec pypy-4.0.1 et virtualenv 14.0.3, je reçois immédiatement une erreur:

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.

En recherchant UserDict* dans l'installation pypy d'origine, j'ai trouvé UserDict.py dans lib-python\2.7 mais dans le lib-python\2.7 de virtualenv, il n'y avait que userdict.py et aucun des fichiers User en majuscule. Suivant l'exemple des autres solutions, j'ai supprimé le userdict.py du virtualenv et copié les fichiers User* d'origine, puis relancez la commande virtualenv et le programme s'est exécuté sans erreur.

0
rakslice