/ / virtualenv su macOS usa interprete Python inesistente - python, macos, virtualenv, homebrew

virtualenv su macOS usa interprete Python inesistente - python, macos, virtualenv, homebrew

Quando corro virtualenv, Ho capito:

$ virtualenv
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory

virtualenv solo iniziato a comportarsi in questo modo oggi. Ha funzionato ieri. Si rompe perché virtualenv è uno script Python che utilizza un interprete Python inesistente:

$ head -1 $(which virtualenv)
#!/usr/local/opt/python/bin/python2.7

Sulla mia macchina, /usr/local/opt/python è un collegamento simbolico a una directory Python 3.6:

$ ls -l /usr/local/opt/python
lrwxr-xr-x  1 jim  admin  24  2 Mar 13:45 /usr/local/opt/python -> ../Cellar/python/3.6.4_3

Come previsto, la directory Python 3.6 non contiene a bin/python2.7:

$ ls /usr/local/Cellar/python/3.6.4_3/bin/
2to3            idle            pip3            pydoc3.6        python3-config      python3.6m-config   wheel3
2to3-3.6        idle3           pip3.6          python          python3.6       pyvenv
easy_install        idle3.6         pydoc           python-config       python3.6-config    pyvenv-3.6
easy_install-3.6    pip         pydoc3          python3         python3.6m      wheel

virtualenv chiaramente si aspetta /usr/local/opt/python per contenere materiale Python 2, ma contiene solo materiale Python 3.

Mio /usr/local/opt/python è gestito da Homebrew. Non conosco la provenienza del mio virtualenv. Come faccio a sapere dove sono i miei /usr/local/bin/virtualenv venire da?

Quale è la colpa? Mio virtualenv o Homebrew?

risposte:

3 per risposta № 1

La colpa di questo è con pip, non Homebrew. Mio /usr/local/bin/virtualenv venire da pip install virtualenv, che incorpora un link assoluto all'interprete Python al momento dell'installazione! ho aperto un problema su questo comportamento unidiomatico.