2013-05-28 18 views
5

dopo che un computer ha risolto i miei progetti python (windows) modificati (diciamo da d: a f :). ora tutte le mie virtualenv sono rotte. dopo aver attivato l'env il progetto all'interno del virtualenv non riesce a trovare le dipendenze e gli script personalizzati (dalla cartella \ scripts ENV) non funzionacambiare la cartella virtualenv su windows

provato a fare funzionare:

virtualenv --relocateble ENV_NAME (with the env name ..) 

come in questo stackoverflow question e ha emesso un sacco di righe come:

Script agent\Scripts\deactivate.bat cannot be made relative 

e il mio virtualenv è ancora rotto.

quando ho modificato manualmente activate.bat set VIRTUAL_ENV nel nuovo percorso. alcuni script funzionano di nuovo. ma gli script trasferimento ancora non viene eseguito e la maggior parte degli script sono ancora interrotte

anche in esecuzione l'interpeter pitone non riesce con:

Traceback (most recent call last): 
    File "F:\Python27\learn\agent\agent\lib\site.py", line 677, in <module> 
    main() 
    File "F:\Python27\learn\agent\agent\lib\site.py", line 666, in main 
    aliasmbcs() 
    File "F:\Python27\learn\agent\agent\lib\site.py", line 506, in aliasmbcs 
    import locale, codecs 
    File "F:\Python27\learn\agent\agent\lib\locale.py", line 19, in <module> 
    import functools 
ImportError: No module named functools 

c'è un modo per risolvere questo problema? HELP

Aggiornamento: Ho anche modificato manualmente la riga dell'interprete python shebang in tutti gli script in ENV \ Scripts. ora tutti esito negativo con lo stesso fallimento pitone come sopra

Un altro aggiornamento: al @udi percorso di sistema pitone è:

['', 'C:\\dev\\Python27\\lib\\site-packages\\distribute-0.6.37-py2.7.egg', 'C:\\ 
dev\\Python27\\lib\\site-packages\\pip-1.3.1-py2.7.egg', 'C:\\dev\\Python27\\lib 
\\site-packages\\numpy-1.7.1-py2.7-win32.egg', 'C:\\dev\\Python27\\lib\\site-pac 
kages\\pandas-0.11.0-py2.7-win32.egg', 'C:\\dev\\Python27\\lib\\site-packages\\p 
ytz-2013b-py2.7.egg', 'C:\\dev\\Python27\\lib\\site-packages\\python_dateutil-2. 
1-py2.7.egg', 'C:\\dev\\Python27\\lib\\site-packages\\six-1.3.0-py2.7.egg', 'C:\ 
\dev\\Python27\\lib\\site-packages\\tornado-3.0.1-py2.7.egg', 'C:\\dev\\Python27 
\\lib\\site-packages\\pyzmq-13.1.0-py2.7-win32.egg', 'C:\\dev\\Python27\\lib\\si 
te-packages\\pygments-1.6-py2.7.egg', 'C:\\Windows\\system32\\python27.zip', 'C: 
\\dev\\Python27\\DLLs', 'C:\\dev\\Python27\\lib', 'C:\\dev\\Python27\\lib\\plat- 
win', 'C:\\dev\\Python27\\lib\\lib-tk', 'C:\\dev\\Python27', 'C:\\dev\\Python27\ 
\lib\\site-packages', 'C:\\dev\\Python27\\lib\\site-packages\\setuptools-0.6c11- 
py2.7.egg-info'] 

dal momento che non è possibile eseguire python dalla virtualenv, non posso stampa il percorso Python da qui

+0

Hai cambiato la tua versione o piattaforma Python? – Udi

+0

Puoi aggiungere la stampa di 'python'>' import sys'> 'sys.path'? – Udi

+0

sì, il nuovo sistema ha una versione più recente di python (penso, non sono sicuro). Aggiungere il sistema python sys.path nella domanda – alonisser

risposta

1

Sembra che il tuo sistema e gli ambienti locali creino un mix di librerie e binari di diverse versioni di python.

È probabile che si avrebbe bisogno di eliminare Lib, Scripts e Include e ricominciare con virtualenv .. Potresti riuscire a salvare la cartella site-packages, ma se hai i file requirements.txt, dovresti probabilmente reinstallare i pacchetti (vedi anche: How do I install from a local cache with pip?).

In ogni caso, credo che sia possibile creare uno script che faccia tutto questo in un unico passaggio.

+0

hmm. So che posso reinstallare un virtualenv, e ho un requisito.txt da un freeze del pip. ma non sono contento di questa soluzione. se non compare altro, mi limiterò a ricontrollare il repository e reinstallarlo – alonisser

+0

Puoi provare a copiare 'Lib' ed eseguire i file in' Script 'da un nuovo virtualenv, ma è lo stesso :-) – Udi

+0

Sospetto che la copia possa fare peggio, al momento sto provando il tuo suggerimento di un nuovo virtualenv con una reinstallazione di pacchetti, tieni le dita per me. – alonisser

20

Correzione pitone percorso della directory in ENV_FOLDER\Lib\orig-prefix.txt mi ha aiutato

+3

Questo era il mio problema quando si spostava dal computer al computer – JamesD

+1

Ha funzionato anche per me. Ho reinstallato Python (Anaconda) in diverse directory. – curtisp

+0

Ha funzionato anche per me. Grazie! – neolei

0

Ho installato sia PY2 e PY3 sul mio Windows 10. E ottenuto questo errore da creare virtualenv utilizzando virtualenv xxx direttamente. Dopo aver eliminato la cartella xxx e reinstallato con virtualenv -p TARGET_PY_EXE xxx, tutto funziona correttamente. Spero che questo aiuti più utenti di Python Windows. A proposito, creo semplicemente variabili env come PY2 e PY3 invece di aggiungere percorsi assoluti nello PATH.

Problemi correlati