Wenn ich renne virtualenv
Ich 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 № 1Die 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.