No, per uno '--relocatable' non aggiorna lo script 'virtualenv/bin/activate'. Sì, è possibile risolvere il problema eseguendo nuovamente l'installazione di env virtuale come suggerito da zeekay, tuttavia non si riesce ad importare alcuna installazione "pip -e git ..." che viene inserita in "virtualenv/src", quindi sarà necessario eseguire nuovamente quei pip si installano manualmente.
Dall'esperienza ora un giorno non installo con pip editable (-e) e se necessario clonare manualmente i repository in "project/src /" in contrapposizione a "project/virtualenv/src" e avere il seguente script auto_prep_pythonpath.py
caricato prima di avviare il mio progetto (lo faccio riferimento nel mio script django.wsgi
).
Come nota a margine, aggiungo "su misura" a tutti i pacchetti inseriti in "project/src" che sono modificati/hackerati, quindi non devo preoccuparmi della compatibilità con le versioni precedenti e rintraccio tutta la sorgente sotto il controllo del codice come i repository online possono e ti freneranno.
Spero che questo aiuti.
"""
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)
fonte
2013-04-04 16:55:14
Che cos'è una "chiamata trasferibile sull'inv virtuale"? – hughdbrown
Ricorda di accettare le risposte alle tue domande. A tale scopo, fai clic sul segno di spunta accanto a quello più utile. Per favore, torna indietro e fallo anche per le tue vecchie domande a risposta. – agf
Non capisco perché vuoi spostare i tuoi virtualenv in giro. Li ho appena in '~/.virtualenvs' e ho finito con esso. Niente muss, niente storie. – hughdbrown