python - Problemer med at løbe scripts installeret af virtualenv-kommandoer på Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Der er et problem med at løbe installerede scripts på Windows, som kan ses nedenfor


C:UsersPiotr>where python
C:program filesPython2.7python.exe
C:UsersPiotr>python c:program filesPython2.7scriptsve init
[Errno 2] No such file or directory
Is "ve-init" executable in the current path?
C:UsersPiotr>


Jeg forsøgte at løse dette ved at følge vejledninger i Sådan køres installeret python script? spørgsmål, men uden held:


C:UsersPiotr>assoc .py
.py=Python.File
C:UsersPiotr>ftype Python.File
Python.File=c:program filesPython2.7python.exe "\%1" \%*
C:UsersPiotr>dir /b "c:program filespython2.7scripts"
easy\_install-2.7-script.py
easy\_install-2.7.exe
easy\_install-script.py
easy\_install.exe
pip-2.7-script.py
pip-2.7.exe
pip-script.py
pip.exe
ve-clone
ve-extend
ve-init.py
ve.py
virtualenv-script.py
virtualenv.exe    
C:UsersPiotr>python c:program filesPython2.7Scriptsve.py init
[Errno 2] No such file or directory
Is "ve-init" executable in the current path?


Jeg tror, ​​hvad der er specielt i dette tilfælde er, at ve script kører kommando scripts (ve-init, ve-clone etc.) gennem OS (os.execvp()).

Bedste reference


Løsningen er at tilføje .py udvidelse til PATHEXT miljøvariabel, så Python scripts kunne køres uden at angive udvidelse (så længe de er på PATH).


Ikke desto mindre er det ikke nok at få virtualenv-kommandoer til at fungere på Windows, fordi denne pakke bruger Unix-specifikke værktøjer, der ikke er tilgængelige på Windows.


Sjovt, jeg antager, at ideen bag oprettelsen af ​​ virtualenv-kommandoer var at gøre den mere bærbar end virtualenvwrapper ved ikke at bruge shell scripts, men det ser ud til, at den nuværende implementering kun understøtter Unix.