Die Ursache des Problems sind häufig veraltete Skripte im Unterverzeichnis bin
(Linux) oder Scripts
(Windows). Ich werde dies anhand eines Problems erklären, auf das ich als Beispiel gestoßen bin.
Ich hatte virtualenv Version 1.10 in meinen Benutzer-Site-Paketen installiert (die Tatsache, dass es sich um Benutzer-Site-Pakete handelt, nicht um System-Site-Pakete, ist hier irrelevant).
pdobrogost@host:~$ which virtualenv
/home/users/pdobrogost/.local/bin/virtualenv
pdobrogost@host:~$ virtualenv --version
1.10
Nach dem Upgrade auf Version 1.11 wurde folgende Fehlermeldung angezeigt:
pdobrogost@host:~$ virtualenv --version
Traceback (most recent call last):
File "/home/users/pdobrogost/.local/bin/virtualenv", line 5, in <module>
from pkg_resources import load_entry_point
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2701, in <module>
return self.__dep_map
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 572, in resolve
if insert:
pkg_resources.DistributionNotFound: virtualenv==1.10
Die /home/users/pdobrogost/.local/bin/virtualenv
in der Fehlermeldung erwähnte Datei sah folgendermaßen aus:
#!/opt/python/2.7.5/bin/python2.7
# EASY-INSTALL-ENTRY-SCRIPT: 'virtualenv==1.10','console_scripts','virtualenv'
__requires__ = 'virtualenv==1.10'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('virtualenv==1.10', 'console_scripts', 'virtualenv')()
)
Dort sehen wir, dass das virtualenv
Skript nicht aktualisiert wurde und weiterhin die zuvor installierte Version 1.10 von virtualenv erfordert.
Installieren Sie nun virtualenv wie folgt neu
pdobrogost@host:~$ pip install --user --upgrade virtualenv
Downloading/unpacking virtualenv from https://pypi.python.org/packages/py27/v/virtualenv/virtualenv-1.11.1-py27-none-any.whl#md5=265770b61de41d34d2e9fdfddcdf034c
Using download cache from /home/users/pdobrogost/.pip_download_cache/https%3A%2F%2Fpypi.python.org%2Fpackages%2Fpy27%2Fv%2Fvirtualenv%2Fvirtualenv-1.11.1-py27-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...
hilft nicht (auch nicht pip install --user --upgrade --force-reinstall virtualenv
), da das Skript /home/users/pdobrogost/.local/bin/virtualenv
unverändert bleibt.
Die einzige Möglichkeit, dies zu beheben, bestand darin, virtualenv * -Skripte manuell aus dem /home/users/pdobrogost/.local/bin/
Ordner zu entfernen und virtualenv erneut zu installieren. Danach beziehen sich neu generierte Skripte auf die richtige Version des Pakets:
pdobrogost@host:~$ virtualenv --version
1.11