Se uno ha più versioni di un pacchetto installato, ad esempio ad es. SciPy:
>>> import scipy; print(scipy.__version__); print(scipy.__file__)
0.17.0
/usr/lib/python3/dist-packages/scipy/__init__.py
e si vorrebbe la versione installata utente (ad esempio installato utilizzando pip install --user --upgrade scipy
) da preferire, ha bisogno di un file di usercustomize.py in ~/.local/lib/python3.5/site-packages/
con per esempio questo contenuto:
import sys, os
my_site = os.path.join(
os.environ['HOME'], '.local/lib/python%d.%d/site-packages' % (
sys.version_info[0], sys.version_info[1]))
for idx, pth in enumerate(sys.path):
if pth.startswith('/usr'):
sys.path.insert(idx, my_site)
break
else:
raise ValueError("No path starting with /usr in sys.path")
(l'indice per la selezione del ciclo assicura che i pacchetti installati in modalità "sviluppare" ha la precedenza) ora abbiamo la nostra versione specifica all'utente di SciPy:
>>> import scipy; print(scipy.__version__); print(scipy.__file__)
0.18.1
/home/user/.local/lib/python3.5/site-packages/scipy/__init__.py
fonte
2017-01-23 06:48:27
Hai provato solo anteponendo il percorso versione della libreria prima dell'importazione? cioè import sys; sys.path.insert (0, "/ path/to/file/versione"); importa qualcosa – bjarneh
Non l'ho mai fatto da solo, ma penso che potresti usare imp.find_module() e imp.load_module(). [Documentazione] (http://docs.python.org/library/imp.html) – malbani