python - Windows kommandolinje, 'python3' peger på den forkerte python3.exe

Indlæg af Hanne Mølgaard Plasc

Problem



Så jeg har Anaconda, OSGeo og Python2.7 installeret på min computer.


Jeg bruger også Spyder. I Spyder:


>>> import sys
>>> sys.executable
'C:\ProgramData\Anaconda3\pythonw.exe'


Det er hvad jeg vil have.


Men i Windows kommandolinjen og powershell:


$ python3
>>> import sys
>>> sys.executable
'C:\Progra~1\OSGeo4W\bin\python3.exe'


Hvilket er ikke , hvad jeg vil have. Jeg vil bruge 'C:\ProgramData\Anaconda3\pythonw.exe' (eller python.exe, ikke sikker), når du bruger python3 i kommandolinjen.


Også :


$ pip3
Fatal error in launcher: Unable to create process using '"'


Jeg får ikke hvorfor python3 i Windows-kommandolinjen peger på OSGeos version af Python3. Her er min path:


C:Python27;C:Python27Scripts;C:ProgramDataAnaconda3;C:ProgramDataOracleJavajavapath;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program FilesGitcmd;C:Program FilesPuTTY;C:Progra~1OSGeo4Win;C:Program FilesMicrosoftR OpenR-3.4.0in


Jeg har også en miljøvariabel kaldet PYTHONHOME


C:ProgramDataAnaconda3





Desuden (for fuldstændig information) har jeg installeret python 2:


$ python
  File "C:ProgramDataAnaconda3libsite.py", line 177
    file=sys.stderr)
        ^
SyntaxError: invalid syntax


($ pip udsender det samme).


At have python3 og python2.7 begge arbejder ved brug af python3 og python (henholdsvis) i Windows-kommandolinjen ville være en god bonus, men det er ikke min prioritet.

Bedste reference


Der er nok flere ting, du skal passe på:


Generelt er søgeordet til Windows PATH fra venstre mod højre, der starter med systemet PATH. Det første matchende element vinder. I dit tilfælde er dette korrekt, fordi systemet først søger C:ProgramDataAnaconda3. Men i den mappe er ingen eksekverbar kaldet python3 som standard. På mit system oprettede jeg et simlink, der pegede på python.exe. På dit system kan du gøre det i PowerShell som dette:


New-Item -Path C:ProgramDataAnaconda3python3.exe -ItemType SymbolicLink -Value C:ProgramDataAnaconda3python.exe


pip er placeret i Scripts \ folder, så i dit tilfælde skal du tilføje C:ProgramDataAnaconda3Scripts til din PATH og oprette de tilsvarende simlinks igen. I dette tilfælde skal du oprette to af dem, fordi pip.exe tilføjer sit navn til scriptet, der forsøger at ringe (dvs. hvis din exe-fil hedder foo.exe, vil det forsøge at ringe foo-script.exe]] som ikke eksisterer) kan du oprette simlinks i PowerShell med disse to kommandoer:


New-Item -Path C:ProgramDataAnaconda3Scriptspip3.exe -ItemType SymbolicLink -Value C:ProgramDataAnaconda3Scriptspip.exe


og


New-Item -Path C:ProgramDataAnaconda3Scriptspip3-script.py -ItemType SymbolicLink -Value C:ProgramDataAnaconda3Scriptspip-script.py


Ligesom dette vil du kunne bruge python3 og pip3 fra din cmd-linje. Kontroller venligst for lignende problemer med din python2 installationsmappe.


Håber det hjælper.