/ / virtualenv verwendet auf macOS einen nicht vorhandenen Python-Interpreter - Python, Macos, Virtualenv, Homebrew

Virtualenv auf MacOS verwendet nicht existenten Python-Interpreter - Python, Macos, Virtualenv, Homebrew

Wenn ich renne virtualenvIch bekomme folgendes:

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

virtualenv begann sich erst heute so zu benehmen. Es hat gestern funktioniert. Es bricht, weil virtualenv ist ein Python-Skript, das einen nicht vorhandenen Python-Interpreter verwendet:

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

Auf meiner Maschine /usr/local/opt/python ist ein Symlink zu einem Python 3.6-Verzeichnis:

$ 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

Wie erwartet enthält das Python 3.6-Verzeichnis kein 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 erwartet eindeutig /usr/local/opt/python Python 2-Material enthalten, es enthält jedoch nur Python 3-Material.

Meine /usr/local/opt/python wird von Homebrew verwaltet. Ich kenne die Herkunft meiner nicht virtualenv. Wie finde ich heraus wo mein /usr/local/bin/virtualenv kam aus?

Was ist schuld? Meine virtualenv oder Homebrew?

Antworten:

3 für die Antwort № 1

Die Schuld dafür liegt bei pip, nicht Homebrew. Meine /usr/local/bin/virtualenv kam aus pip install virtualenv, die zum Installationszeitpunkt einen absoluten Link zum Python-Interpreter enthält! ich habe geöffnet ein Problem zu diesem unidiomatischen Verhalten.