2017-02-06 10 views
1

Ich habe eine neue numpy Version unter /opt/lib/python2.7/site-packages, und eine Standardversion (System) unter /usr/lib/python2.7/dist-packages. Ich mag die neue numpy Version vorübergehend verwenden, so füge ich folgendes am Anfang meines Skripts:python ändern sys.path funktioniert nicht

In [1]: import sys 

In [2]: sys.path.insert(1,'/opt/numpy/lib/python2.7/site-packages') 

In [3]: sys.path 
Out[3]: 
['', 
'/opt/numpy/lib/python2.7/site-packages', 
'/usr/local/bin', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client', 
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode', 
'/usr/lib/python2.7/dist-packages/IPython/extensions'] 

Seltsamer lädt es noch die alte numpy Version:

In [4]: import numpy as np 

In [5]: np.__file__ 
Out[5]: '/usr/lib/python2.7/dist-packages/numpy/__init__.pyc' 

Hat jemand eine Ahnung hat Dies?

Anmerkung1: Diese Frage bezieht sich auf sys.path in Python. Bitte empfehle mir nicht, virtualenv zu verwenden oder PYTHONPATH zu ändern.

Hinweis 2: Die folgenden Dateien werden unter meinem neuen numpy Verzeichnis

gefunden
$ ls /opt/numpy/lib/python2.7/site-packages 
easy-install.pth numpy-1.11.0-py2.7-linux-x86_64.egg __pycache__ site.py site.pyc 
+0

* „Bitte mich nicht empfehlen zu verwenden virtualenv“ * - warum nicht? Dies ist im Allgemeinen der einfachste Weg, eine Entwicklungsumgebung mit bestimmten Versionen Ihrer Anforderungen zu verwalten. – jonrsharpe

+0

Welche Umgebung verwenden Sie, Anacondas Notebook oder IDE? –

+0

@DeepakM es ist python und ipython unter '/ usr/bin/python' bzw.'/usr/local/bin/ipython'. –

Antwort

0

Anscheinend muss ich die numpy .egg Datei hinzufügen, um zu sys.path, damit es funktioniert.

In [1]: import sys 

In [2]: sys.path.insert(1,'/opt/numpy/lib/python2.7/site-packages/numpy-1.11.0-py2.7-linux-x86_64.egg') 

In [3]: sys.path 
Out[3]: 
['', 
'/opt/numpy/lib/python2.7/site-packages/numpy-1.11.0-py2.7-linux-x86_64.egg', 
'/usr/local/bin', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client', 
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode', 
'/usr/lib/python2.7/dist-packages/IPython/extensions'] 

In [4]: import numpy as np 

In [5]: np.__file__ 
Out[5]: '/opt/numpy/lib/python2.7/site-packages/numpy-1.11.0-py2.7-linux-x86_64.egg/numpy/__init__.pyc' 

Es funktioniert nicht, wenn ich die Website-Pakete nur hinzufügen:

In [1]: import sys 

In [2]: sys.path.insert(1,'/opt/numpy/lib/python2.7/site-packages') 

In [3]: sys.path 
Out[3]: 
['', 
'/opt/numpy/lib/python2.7/site-packages', 
'/usr/local/bin', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client', 
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode', 
'/usr/lib/python2.7/dist-packages/IPython/extensions'] 

In [4]: import numpy as np 

In [5]: np.__file__ 
Out[5]: '/usr/lib/python2.7/dist-packages/numpy/__init__.pyc' 
Verwandte Themen