Si tiene varias versiones de un paquete instalado, p. Ej. SciPy:
>>> import scipy; print(scipy.__version__); print(scipy.__file__)
0.17.0
/usr/lib/python3/dist-packages/scipy/__init__.py
y uno le gustaría la versión instalada de usuario (por ejemplo, usando instalado pip install --user --upgrade scipy
) a ser preferidas, uno necesita un archivo usercustomize.py en ~/.local/lib/python3.5/site-packages/
con, por ejemplo este contenido:
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")
(el índice de selección de lazo garantiza que los paquetes instalados en el "modo de desarrollo" tiene prioridad) ahora tenemos nuestra versión específica de usuario de SciPy:
>>> import scipy; print(scipy.__version__); print(scipy.__file__)
0.18.1
/home/user/.local/lib/python3.5/site-packages/scipy/__init__.py
has necesitado simplemente anteponiendo la ruta a su versión de la biblioteca antes de la importación? es decir 'import sys; sys.path.insert (0, "/ ruta/a/su/versión"); import something ' – bjarneh
Nunca he hecho esto yo mismo, pero creo que podrías usar imp.find_module() y imp.load_module(). [Documentación] (http://docs.python.org/library/imp.html) – malbani