Virtualenv: Masalah dengan mobil non ASCII di jalurnya

Dibuat pada 29 Jul 2013  ·  20Komentar  ·  Sumber: pypa/virtualenv

Saya tidak tahu apakah ini terkait dengan # 186 tetapi dengan pemasangan python baru saya di Windows 8 saya, saya mengalami kesalahan berikut saat menggunakan virtualenv di jalur 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
daftar pip
hidung (1.3.0)
pip (1.4)
Perancah (0.1.3)
alat penyiapan (0.9.7)
virtualenv (1.10)

Edit:

bug help-wanted

Komentar yang paling membantu

Ini sekarang telah diperbaiki, selama codec sistem file dapat menanganinya, kami akan menanganinya juga 👍 jika tidak, kami akan memunculkan pesan kesalahan yang sesuai 👍 Di windows pre python3.6 ini berarti mcbs codec 👍 dalam semua kasus selanjutnya kita sedang berbicara tentang utf-8.

Semua 20 komentar

Halo,
Punya masalah yang sama persis di sini dengan:
python v2.7.5
Win7 64bit
Bisa direproduksi sesuka hati

Sepertinya # 453

Masalah ini juga terjadi di Mac OS X 10.8.4 dengan 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

Permintaan pull # 187 menyebutkan sesuatu tentang pengkodean FS berbeda dari pengkodean default. Mungkin konfigurasi sistem akan menyelesaikannya?

perbaikan atykhonov bekerja untuk saya.

Menabrak. Adakah peningkatan? @atykhonov Bagaimana jika mengirimkan tambalan Anda sebagai permintaan tarik?

Dito. Masalah juga terjadi di Linux, di sini dengan karakter Cina:

$ 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.
>>> 

Saya memiliki patch WIP untuk masalah ini, sementara hal-hal tidak dapat dilakukan sebelum bug di https://bitbucket.org/pypa/distlib/pull-requests/27 diperbaiki.

@ yan12125 - Saya tidak yakin apakah PR Anda benar, lihat komentar saya tentang itu. Selain itu, tidak jelas apakah dump konsol di atas terkait dengan masalah distlib - tampaknya merupakan bug berbeda di virtualenv yang dipanggil saat menguji bahwa venv dibuat dengan benar.

Ada banyak permintaan tarik yang mencoba menyelesaikan ini:

  • # 900 (# 875): dibuka oleh saya, semua tes lulus
  • # 902 (# 894): dibuka oleh @aodag
  • # 907 (# 453): dibuka oleh @magres
  • # 908 (# 492): dibuka oleh @atykhonov
  • # 912 (# 630): dibuka oleh @dholth

Saya kira lingkungan pengujian Windows seperti Appveyor juga diperlukan. pypa / pip sudah menggunakannya .

FI, saya mendapat kesalahan yang sama di 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.

Untuk apa pun nilainya, saya dapat mereproduksi masalah ini di Windows 7, Python 3.6.4, virtualenv 15.1.0, saat bekerja di bawah akun pengguna dengan nama pengguna dimulai dengan $ .

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 : yang tampak seperti masalah yang berbeda dari karakter atau spasi China di jalur. Bisakah Anda membuka terbitan baru?

BTW, venv juga terpengaruh, dan akan sangat bagus jika masalah dibuka di https://bugs.python.org/ untuk venv juga.

@philosophicles Ini mungkin bukan bug - tampaknya terjadi karena distutils melihat $cuthbertson sebagai placeholder dan mencoba menggantinya dengan variabel, yang tidak ditemukan. Lihat bagian dokumentasi ini .

Saya akan mengangkat masalah terpisah (di virtualenv dan venv) untuk masalah saya saat ini.

@vsajip - pendapat saya adalah bahwa ini pasti bug. Saya telah melihat dokumentasi yang Anda rujuk, tetapi itu adalah referensi API untuk seseorang yang mengembangkan menggunakan distutils. Saya hanya mencoba menjalankan perintah sederhana seperti > python -m virtualenv . bawah Windows, dan menemukan kesalahan fatal yang mencegah virtualenv melakukan apa yang seharusnya dilakukan. Saya tidak perlu peduli sama sekali tentang implementasi internal virtualenv, atau bagaimana distutils bekerja, atau bahkan apa path direktori lengkap saya. Ini sah untuk path direktori Windows berisi $ sehingga idealnya harus didukung.

Masalah ini secara otomatis ditandai sebagai usang karena tidak ada aktivitas terbaru. Ini akan ditutup jika tidak ada aktivitas lebih lanjut. Cukup tambahkan komentar jika Anda ingin tetap membukanya. Terima kasih atas kontribusi Anda.

@stale menutup ini .... tapi ping. Ini masih bug ... tapi saya baik-baik saja jika ini tidak diperbaiki pada 2.7.x ... Saya hanya perlu tahu

Ini sekarang telah diperbaiki, selama codec sistem file dapat menanganinya, kami akan menanganinya juga 👍 jika tidak, kami akan memunculkan pesan kesalahan yang sesuai 👍 Di windows pre python3.6 ini berarti mcbs codec 👍 dalam semua kasus selanjutnya kita sedang berbicara tentang utf-8.

@gaborbernat Terima kasih ++

Hai @gaborbernat , apakah masalah ini telah diperbaiki di cabang master terbaru?
Saya menggunakan cabang master dan mendapatkan kesalahan yang mirip dengan masalah # 1375 .
jika tidak, saya dapat membuat PR untuk memperbaiki masalah ini.

Bukan di cabang master, tapi cabang rewrite yang akan segera menggantikan master.

Oke, terima kasih atas balasan Anda.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat