Esta es la solución que terminé usando:
import pip
def install(package):
# Debugging
# pip.main(["install", "--pre", "--upgrade", "--no-index",
# "--find-links=.", package, "--log-file", "log.txt", "-vv"])
pip.main(["install", "--upgrade", "--no-index", "--find-links=.", package])
if __name__ == "__main__":
install("mypackagename")
raw_input("Press Enter to Exit...\n")
Reuní esto a partir de ejemplos de instalación de pip , así como de la respuesta de Rikard en otra pregunta . El argumento "--pre" le permite instalar versiones que no son de producción. El argumento "--no-index" evita buscar en los índices PyPI. El "--find-links =". Las búsquedas de argumentos en la carpeta local (esto puede ser relativo o absoluto). Usé los argumentos "--log-file", "log.txt" y "-vv" para la depuración. El argumento "--upgrade" le permite instalar versiones más nuevas sobre las anteriores.
También encontré una buena manera de desinstalarlos. Esto es útil cuando tiene varios entornos Python diferentes. Es el mismo formato básico, simplemente usando "desinstalar" en lugar de "instalar", con una medida de seguridad para evitar desinstalaciones no deseadas:
import pip
def uninstall(package):
response = raw_input("Uninstall '%s'? [y/n]:\n" % package)
if "y" in response.lower():
# Debugging
# pip.main(["uninstall", package, "-vv"])
pip.main(["uninstall", package])
pass
if __name__ == "__main__":
uninstall("mypackagename")
raw_input("Press Enter to Exit...\n")
La carpeta local contiene estos archivos: install.py, uninstall.py, mypackagename-1.0.zip
pip install <Path-to-WHL-file>
.