python - eliminar - virtualenv django
Instalando paquetes de Python desde la carpeta del sistema de archivos local a virtualenv con pip (7)
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")
Puse esto junto con los 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 sean de producción. El argumento "--no-index" evita buscar en los índices PyPI. El "--find-links =." búsquedas de argumentos en la carpeta local (esto puede ser relativo o absoluto). Utilicé 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 tienes 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 involuntarias:
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
¿Es posible instalar paquetes usando pip desde el sistema de archivos local?
He ejecutado python setup.py sdist
para mi paquete, que ha creado el archivo tar.gz apropiado. Este archivo se almacena en mi sistema en /srv/pkg/mypackage/mypackage-0.1.0.tar.gz
.
Ahora, en un entorno virtual, me gustaría instalar paquetes que provengan de pypi o de la ubicación local específica /srv/pkg
.
es posible?
PS Sé que puedo especificar pip install /srv/pkg/mypackage/mypackage-0.1.0.tar.gz
. Eso funcionará, pero estoy hablando de usar la ubicación /srv/pkg
como otro lugar para que pip busque si pip install mypackage
.
Esto es muy simple. El comando que necesitas es:
pip install -e <DIRECTORY>
Tenga en cuenta que el directorio debe tener un archivo setup.py
en él
Estoy bastante seguro de que lo que está buscando se llama --find-links
option.
Aunque es posible que necesite generar un index.html
ficticio para su índice de paquete local que enumera los enlaces a todos los paquetes. Esta herramienta ayuda a:
Estoy instalando pyfuzzy
pero no está en PyPI; devuelve el mensaje: No matching distribution found for pyfuzzy
.
Probé la respuesta aceptada.
pip install --no-index --find-links=file:///Users/victor/Downloads/pyfuzzy-0.1.0 pyfuzzy
Pero tampoco funciona y devuelve el siguiente error:
Ignorar índices: https://pypi.python.org/simple Recopilación de pyfuzzy No se pudo encontrar una versión que cumpla con el requisito pyfuzzy (de las versiones:) No se encontró una distribución coincidente para pyfuzzy
Por fin, he encontrado una manera sencilla y buena: https://pip.pypa.io/en/latest/reference/pip_install.html
Install a particular source archive file.
$ pip install ./downloads/SomePackage-1.0.4.tar.gz
$ pip install http://my.package.repo/SomePackage-1.0.4.zip
Así que el siguiente comando funcionó para mí:
pip install ../pyfuzzy-0.1.0.tar.gz.
Espero que te ayude.
Qué pasa::
pip install --help
...
-e, --editable <path/url> Install a project in editable mode (i.e. setuptools
"develop mode") from a local project path or a VCS url.
por ejemplo, pip install -e /srv/pkg
donde / srv / pkg es el directorio de nivel superior donde se puede encontrar ''setup.py''.
Tener requisitos en egg_dir
y egg_dir
como directorio.
puedes construir tu caché local:
$ pip download -r requirements.txt -d eggs_dir
entonces, usar ese "caché" es simple como:
$ pip install -r requirements.txt --find-links=eggs_dir
Una opción --find-links hace el trabajo y funciona desde el archivo --find-links !
Puede poner los paquetes de archivos en alguna carpeta y tomar la última sin cambiar el archivo de requisitos, por ejemplo, requirements
:
.
└───requirements.txt
└───requirements
├───foo_bar-0.1.5-py2.py3-none-any.whl
├───foo_bar-0.1.6-py2.py3-none-any.whl
├───wiz_bang-0.7-py2.py3-none-any.whl
├───wiz_bang-0.8-py2.py3-none-any.whl
├───base.txt
├───local.txt
└───production.txt
Ahora en requirements/base.txt
puesto:
--find-links=requirements
foo_bar
wiz_bang>=0.8
Una forma ingeniosa de actualizar paquetes propietarios, simplemente suelte uno nuevo en la carpeta
De esta manera, puede instalar paquetes desde local folder
Y pypi
con la misma llamada: pip install -r requirements/production.txt
pypi
pip install -r requirements/production.txt
PD. Vea mi cookiecutter-djangopackage para ver cómo dividir los requisitos y usar la organización de requisitos basados en carpetas.