No, para uno '--relocatable' no actualiza el script 'virtualenv/bin/activate'. Sí, puede solucionarlo volviendo a ejecutar la configuración de env virtual como lo sugirió zeekay, sin embargo, las imágenes fijas no pueden importar ninguna instalación 'pip -e git ...' que se coloque en 'virtualenv/src', por lo que tendrá que volver a ejecutar esas instalaciones pip manualmente.
Desde la experiencia hoy en día no instalo con pip editable (-e) y si es necesario clono manualmente repositorios en 'project/src /' en contraposición a 'project/virtualenv/src' y tengo el siguiente script auto_prep_pythonpath.py
cargado antes de lanzar mi proyecto (lo hago referencia en mi script django.wsgi
).
Como nota al margen agrego 'adaptado' a los paquetes colocados en 'project/src' que están modificados/pirateados así que no tengo que preocuparme por la compatibilidad con versiones anteriores y rastrear todas las fuentes bajo control de código como repositorios en línea pueden y van a frenar en usted.
Espero que esto ayude.
"""
Prepares python path to include additional project/src/<APP> in PYTHONPATH - This file gets automatically loaded by projects __init__.py
This script lives in 'project/src/django-project/auto_prep_pythonpath.py', modify
'SOURCE_ROOT' if you place it somehwere else.
"""
import logging
import os
import sys
SOURCE_ROOT = os.path.dirname(os.path.abspath(__file__)).replace('\\','/') # the replacements are when on windows
SOURCE_ROOT = os.path.join(SOURCE_ROOT, '../').replace('\\','/')
SOURCE_ROOT = os.path.normpath(SOURCE_ROOT)
logger = logging.getLogger(__name__)
logger.info("Adding packages in 'src/*' required by project to PYTHONPATCH.")
dirlist_arr = os.listdir(SOURCE_ROOT)
while dirlist_arr:
item_path = os.path.join(SOURCE_ROOT, dirlist_arr.pop()).replace('\\','/') # replace dashes is for win based file system
if os.path.isdir(item_path):
if not item_path in sys.path:
sys.path.insert(0, item_path) # we use insert to take precedence over any global paths - minimises import conflict suprises
logger.debug("Path '%s' added." % item_path)
¿Qué es "una llamada reubicable en el entorno virtual"? – hughdbrown
Recuerde aceptar respuestas a sus preguntas. Haga esto haciendo clic en la marca de verificación junto a la más útil. Por favor, vuelve y hazlo por tus viejas preguntas respondidas también. – agf
No entiendo por qué quieres mover tus virtualenvs. Los tengo en '~/.virtualenvs' y ya terminé. Sin despeinarse sin problemas. – hughdbrown