Je ne sais pas si cela est lié à # 186 mais avec ma nouvelle installation de python sur mon Windows 8, j'ai l'erreur suivante lors de l'utilisation de virtualenv dans le chemin C: \ Users \ oncleben \ Dropbox \ Developement \ fraisDeSanté
C:\Users\oncleben\Dropbox\Developement\fraisDeSanté> virtualenv ENV
New python executable in ENV\Scripts\python.exe
Traceback (most recent call last):
File "<string>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 50: ordinal not in range(128)
ERROR: The executable ENV\Scripts\python.exe is not functioning
ERROR: It thinks sys.prefix is u'c:\\users\\oncleben\\dropbox\\developement\\fraisdesant\xe9' (should be u'c:\\users\\on
cleben\\dropbox\\developement\\fraisdesant\xe9\\env')
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 versi
ons of Python installed. Copying the appropriate PythonXX.dll to the virtualenv Scripts/ directory may fix this problem.
python v2.7.5
liste pip
nez (1.3.0)
pip (1,4)
Échafaudage (0.1.3)
setuptools (0.9.7)
virtualenv (1.10)
Éditer:
Bonjour,
Vous avez exactement le même problème ici avec:
python v2.7.5
Win7 64 bits
Peut être reproduit à volonté
Ressemble à # 453
Ce problème se produit également sur Mac OS X 10.8.4 avec Python v2.7.2:
New python executable in venv/bin/python
Traceback (most recent call last):
File "<string>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 16: ordinal not in range(128)
ERROR: The executable venv/bin/python is not functioning
ERROR: It thinks sys.prefix is u'/Users/RSChiang/\u539f\u59cb\u78bc/repo' (should be u'/Users/RSChiang/\u539f\u59cb\u78bc/repo/venv')
ERROR: virtualenv is not compatible with this system or executable
La requête d'extraction # 187 a mentionné que quelque chose à propos de l'encodage FS diffère de l'encodage par défaut. La configuration du système le résoudrait probablement?
Le correctif d'Atykhonov fonctionne pour moi.
Bosse. Aucun progrès? @atykhonov Que diriez-vous d'envoyer votre patch sous forme de pull requests?
Idem. Le problème se produit également sous Linux, ici avec des caractères chinois:
$ virtualenv /tmp/中文
New python executable in /tmp/中文/bin/python
Traceback (most recent call last):
File "<string>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 5: ordinal not in range(128)
ERROR: The executable /tmp/中文/bin/python is not functioning
ERROR: It thinks sys.prefix is u'/home/vinay/projects/scratch' (should be u'/tmp/\u4e2d\u6587')
ERROR: virtualenv is not compatible with this system or executable
vinay<strong i="6">@ubuntu</strong>:~/projects/scratch$ virtualenv --version
13.1.2
vinay<strong i="7">@ubuntu</strong>:~/projects/scratch$ /tmp/中文/bin/python
Python 2.7.10 (default, Oct 14 2015, 16:09:02)
[GCC 5.2.1 20151010] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
J'ai un correctif WIP pour ce problème, alors que les choses ne peuvent pas être faites avant que le bogue de https://bitbucket.org/pypa/distlib/pull-requests/27 ne soit corrigé.
@ yan12125 - Je ne sais pas si votre PR est correct, voir mes commentaires à ce sujet. De plus, il n'est pas clair que le vidage de la console ci-dessus soit lié au problème distlib
- il semble être un bogue différent dans virtualenv
qui est invoqué lors du test que le venv a été créé correctement.
Il y a beaucoup de pull requests essayant de résoudre ceci:
Je suppose qu'un environnement de test Windows comme Appveyor est également nécessaire. pypa / pip l' utilise déjà .
FI, j'ai eu la même erreur sur Debian GNU / Linux 9.2, Python 2.7.14.
% pwd
/home/tiger-222/Téléchargements
Python 2:
% python2 -m pip install --user --upgrade virtualenv
Collecting virtualenv
Using cached virtualenv-15.1.0-py2.py3-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0
% python2 -m virtualenv test-python2
New python executable in /home/tiger-222/Téléchargements/test-python2/bin/python2
Also creating executable in /home/tiger-222/Téléchargements/test-python2/bin/python
Traceback (most recent call last):
File "<string>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 17: ordinal not in range(128)
ERROR: The executable /home/tiger-222/Téléchargements/test-python2/bin/python2 is not functioning
ERROR: It thinks sys.prefix is u'/home/tiger-222/T\xe9l\xe9chargements' (should be u'/home/tiger-222/T\xe9l\xe9chargements/test-python2')
ERROR: virtualenv is not compatible with this system or executable
Python 3:
% python3 -m pip install --user --upgrade virtualenv
Collecting virtualenv
Using cached virtualenv-15.1.0-py2.py3-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0
% python3 -m virtualenv test-python3
Using base prefix '/usr'
New python executable in /home/tiger-222/Téléchargements/test-python3/bin/python3
Also creating executable in /home/tiger-222/Téléchargements/test-python3/bin/python
Installing setuptools, pip, wheel...done.
Pour tout ce que ça vaut, je peux reproduire ce problème sur Windows 7, Python 3.6.4, virtualenv 15.1.0, lorsque je travaille sous un compte utilisateur avec un nom d'utilisateur commençant par $
.
PS C:\Users\$scuthbertson\Desktop\bugtest> python -m virtualenv .
Using base prefix 'C:\\Program Files\\Python36'
New python executable in C:\Users\$scuthbertson\Desktop\bugtest\Scripts\python.exe
Installing setuptools, pip, wheel...
Complete output from command C:\Users\$scuthberts...t\Scripts\python.exe - setuptools pip wheel:
Collecting setuptools
Using cached setuptools-39.0.1-py2.py3-none-any.whl
Collecting pip
Using cached pip-9.0.3-py2.py3-none-any.whl
Collecting wheel
Using cached wheel-0.30.0-py2.py3-none-any.whl
Installing collected packages: setuptools, pip, wheel
Exception:
Traceback (most recent call last):
File "C:\Program Files\Python36\Lib\distutils\util.py", line 202, in subst_vars
return re.sub(r'\$([a-zA-Z_][a-zA-Z_0-9]*)', _subst, s)
File "C:\Users\$scuthbertson\Desktop\bugtest\lib\re.py", line 191, in sub
return _compile(pattern, flags).sub(repl, string, count)
File "C:\Program Files\Python36\Lib\distutils\util.py", line 199, in _subst
return os.environ[var_name]
File "C:\Users\$scuthbertson\Desktop\bugtest\lib\os.py", line 669, in __getitem__
raise KeyError(key) from None
KeyError: 'scuthbertson'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\site-packages\virtualenv_support\pip-9.0.1-py2.py3-none-any.whl\pip\basecommand.py
", line 215, in main
status = self.run(options, args)
File "C:\Program Files\Python36\lib\site-packages\virtualenv_support\pip-9.0.1-py2.py3-none-any.whl\pip\commands\insta
ll.py", line 342, in run
prefix=options.prefix_path,
File "C:\Program Files\Python36\lib\site-packages\virtualenv_support\pip-9.0.1-py2.py3-none-any.whl\pip\req\req_set.py
", line 784, in install
**kwargs
File "C:\Program Files\Python36\lib\site-packages\virtualenv_support\pip-9.0.1-py2.py3-none-any.whl\pip\req\req_instal
l.py", line 851, in install
self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
File "C:\Program Files\Python36\lib\site-packages\virtualenv_support\pip-9.0.1-py2.py3-none-any.whl\pip\req\req_instal
l.py", line 1064, in move_wheel_files
isolated=self.isolated,
File "C:\Program Files\Python36\lib\site-packages\virtualenv_support\pip-9.0.1-py2.py3-none-any.whl\pip\wheel.py", lin
e 247, in move_wheel_files
prefix=prefix,
File "C:\Program Files\Python36\lib\site-packages\virtualenv_support\pip-9.0.1-py2.py3-none-any.whl\pip\locations.py",
line 153, in distutils_scheme
i.finalize_options()
File "C:\Program Files\Python36\Lib\distutils\command\install.py", line 307, in finalize_options
self.expand_basedirs()
File "C:\Program Files\Python36\Lib\distutils\command\install.py", line 475, in expand_basedirs
self._expand_attrs(['install_base', 'install_platbase', 'root'])
File "C:\Program Files\Python36\Lib\distutils\command\install.py", line 469, in _expand_attrs
val = subst_vars(val, self.config_vars)
File "C:\Program Files\Python36\Lib\distutils\util.py", line 204, in subst_vars
raise ValueError("invalid variable '$%s'" % var)
ValueError: invalid variable '$'scuthbertson''
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Program Files\Python36\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Program Files\Python36\lib\site-packages\virtualenv.py", line 2328, in <module>
main()
File "C:\Program Files\Python36\lib\site-packages\virtualenv.py", line 713, in main
symlink=options.symlink)
File "C:\Program Files\Python36\lib\site-packages\virtualenv.py", line 945, in create_environment
download=download,
File "C:\Program Files\Python36\lib\site-packages\virtualenv.py", line 901, in install_wheel
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
File "C:\Program Files\Python36\lib\site-packages\virtualenv.py", line 797, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command C:\Users\$scuthberts...t\Scripts\python.exe - setuptools pip wheel failed with error code 2
PS C:\Users\$scuthbertson\Desktop\bugtest>
@philosophicles : cela ressemble à un problème différent de celui des caractères chinois ou des espaces dans le chemin. Pouvez-vous ouvrir un nouveau numéro?
BTW, venv est également affecté, et ce serait génial si un problème est ouvert sur https://bugs.python.org/ pour venv également.
@philosophicles Ce n'est peut-être pas un bogue - cela semble se produire parce que distutils
voit $cuthbertson
comme espace réservé et essaie de le remplacer par une variable, qui n'est pas trouvée. Consultez cette partie de la documentation .
Je vais soulever des questions distinctes (à la fois dans virtualenv et venv) pour mon problème actuellement.
@vsajip - mon avis est que c'est définitivement un bug. J'ai regardé la documentation à laquelle vous faites référence, mais c'est une référence d'API pour quelqu'un qui développe à l'aide de distutils. J'essaie juste d'exécuter une commande simple comme > python -m virtualenv .
sous Windows, et je rencontre une erreur fatale qui empêche virtualenv de faire ce qu'il est censé faire. Je ne devrais pas avoir à me soucier du tout de l'implémentation interne de virtualenv, ou du fonctionnement de distutils, ou même du chemin complet de mon répertoire. Il est légitime que les chemins de répertoire Windows contiennent $
, ils devraient donc idéalement être pris en charge.
Ce problème a été automatiquement marqué comme obsolète car il n'a pas eu d'activité récente. Il sera fermé si aucune autre activité n'a lieu. Ajoutez simplement un commentaire si vous souhaitez le garder ouvert. Merci pour vos contributions.
@stale a fermé ça ... mais ping. C'est toujours un bug ... mais ça va si ce n'est pas corrigé sur 2.7.x ... j'ai juste besoin de savoir
Cela a maintenant été corrigé, tant que le codec du système de fichiers peut le gérer, nous le gérerons aussi 👍 sinon nous afficherons le message d'erreur approprié 👍 Sous windows pre python3.6 cela implique le codec mcbs 👍 dans tous les cas ultérieurs, nous parlons de utf-8.
@gaborbernat Merci ++
Salut @gaborbernat , ce problème est-il résolu dans la dernière branche principale?
J'ai utilisé la branche principale et j'ai eu des erreurs similaires au numéro 1375 .
sinon, je peux créer un PR pour résoudre ce problème.
Pas dans la branche master, mais dans la branche rewrite
qui remplacera bientôt master.
OK, merci pour votre réponse.
Commentaire le plus utile
Cela a maintenant été corrigé, tant que le codec du système de fichiers peut le gérer, nous le gérerons aussi 👍 sinon nous afficherons le message d'erreur approprié 👍 Sous windows pre python3.6 cela implique le codec mcbs 👍 dans tous les cas ultérieurs, nous parlons de utf-8.