Sì ma non è mica un affronto personale, sai? Si critica la cosa che fai, non la persona che sei. Se pensi che la critica è sbagliata, contro-argomenta pure, o spiegati meglio. Ma dire che non sei un professionista non sposta minimamente, neanche un capello, del problema. Su un forum di programmazione, sei ciò che fai: programmi, sei un programmatore. Se fossimo su un forum di giardinaggio e tu dicessi che hai appena potato una rosa segandola alla radice, ti diremmo che hai fatto una c*ata, e non importa se tu di mestiere fai l'idraulico. E anche dire che "non è una cosa di lavoro" non sposta il problema (e poi invece da come la mettevi giù, sembrava proprio una cosa di lavoro, ma avrò capito male io).
E poi: ma sì, certo che lo sappiamo che ci sono cose più gravi al mondo di un venv sotto git. Figurati, Trump è presidente degli stati uniti. Ma non è che se rispondi "rilassati, ci sono cose più gravi nella vita", con questo hai risolto il problema, sai. Guarda, io sono rilassatissimo... fa caldo, ho una menta ghiacciata sul tavolino. Questo ti aiuta in qualche modo col tuo problema? Lo rende un po' meno un problema? Però certo, io mi bevo la mia menta con la cannuccia, basta che ci sia la pace e l'armonia universale. Del resto mica il problema ce l'ho io.
Sei stato tu a chiedere se quello che stavi facendo era "accettabile" o meno. Ti ho detto che secondo me non lo è proprio per niente (dove "secondo me" è una concessione al senso di pace universale dovuto alla menta ghiacciata). Se hai letto, magari ti ho aiutato col tuo problema. Ma ripeto, mica è una cosa personale.
E quindi.
> la soluzione del file orig-prefix.txt la trovai on-line.
> Non so a te ma se crei virtual env in windows vai in Lib e apri il file orig-prefix.txt ... cosa vedi? la path assoluta del interprete.
> Ce chi consigliava di modificare questo file.
Ah, ecco una cosa nuova. Il fatto è che leggendo "virtualenvLiborigin-prefix.txt" non mi era proprio passato per il cervello che si stava parlando di un "orig-prefix.txt". Pensavo che fosse un accrocchio strano che faceva parte di qualche sistema di deploy che avete voi in ufficio, appunto. O che venisse fuori da qualche installazione strana fatta con qualche distribuzione di python...
Ora, posto il fatto che questa cosa è veramente un po' oscura e non ben documentata, quindi non sono sicurissimo di niente, ma così a occhio e croce direi:
> crei virtual env in windows vai in Lib e apri il file orig-prefix.txt
Uhm... ma anche no? Nel senso, questo vale per python 2.7.13 e forse era valido anche per python 3 fino a un po' di tempo fa... dovrei controllare... ma di sicuro un venv di Python 3.6 (e credo anche 3.5) usa un altro sistema ormai. Il fatto che il meccanismo sia cambiato e non sia documentato, ti dice già che "orig-prefix.txt" NON è un'api pubblica, e non bisognerebbe farci affidamento.
> cosa vedi? la path assoluta del interprete.
E' vero. Fa parte del modo in cui python, con un processo parecchio tortuoso, costruisce la sua path. I dettagli si trovano, temo, solo leggendo il codice sorgente del modulo "site.py" (la cui documentazione francamente lascia a desiderare). Ma non importano i dettagli. Temo di aver realizzato solo adesso con spavento che tu stavi cercando di usare un venv senza più avere la corrispondente installazione globale di python. Avrei dovuto dedurlo da tutto il concetto di "scaricare il venv da github", che poteva essere questo il caso. Eh, però non è così che funzionano i venv.
> Ce chi consigliava di modificare questo file.
Non lo metto in dubbio, di gente strana ce n'è parecchia in giro. Ma bisogna anche vedere *perché* lo consiglia, in quali casi e per fare che cosa. Intanto, di sicuro "modificare" non può voler dire "rinominare", perché se rinomini orig-prefix.txt, te lo scordi che funziona ancora.
E poi sì, certo, in linea teorica è possibile "ricucire" un venv a una nuova installazione globale di python modificando orig-prefix-txt... Ma chi dice di fare cose del genere, o spiega anche esattamente per quale ragione sta dando un consiglio del genere, oppure dimostra semplicemente di non aver capito una fava di che cosa sono i venv. Ripeto, non c'è alcun bisogno di fare niente del genere: se un venv non funziona più (non importa per quale ragione), la soluzione giusta è buttarlo via e ricrearlo daccapo.
Ora, per togliersi il dubbio bisognerebbe sapere chi consigliava di manipolare orig-prefix, e perché... Ma proviamo a fare reverse engineering delle motivazioni, e vediamo se indovino, va bene? Allora, io qui ci vedrei:
- un tale che non ha una comprensione profonda dei venv,
- che fa un programma python che gira dentro un venv,
- e poi vuole "distribuire" il programma. Allora che fa?
- Prende tutta la "cartella" del venv e la zippa, la mette online, su github, su dropbox, quello che è...
- e si intende che la "cartella" del programma magari sta dentro la "cartella" del venv... abbiamo detto che il tipo non ha una comprensione profonda, no?,
- e poi ti dice, guarda, scaricati tutta la "cartella" e mettila dove vuoi, poi installati python, e vedi che tutto funziona.
- Solo che niente funziona, ovviamente, e allora quello ti dice,
- no guarda, devi modificare orig-prefix.txt e farlo puntare al tuo python globale, e poi vedi che tutto funziona.
Ora capisco, mi rendo conto che un anti-pattern del genere può portare anche a venv su github e tutti gli orrori disseminati lungo la strada.
Eh. In un certo senso adesso è più chiaro.
Però guarda, non prenderla sul personale, davvero. Ma questo resta un anti-pattern e gli orrori disseminati lungo la strada restano orrori. Per hobby o per lavoro, rilassati o no.
Ah, post scriptum: 'sta roba della gente che mette i venv su github e incasina le ricerche, non me la sono inventata, mi è proprio successa. Mesi fa stavo cercando di capire un fott**issimo internal di Django, e alla disperata ho fatto una ricerca su github del nome esatto della funzione, per vedere se qualcuno l'aveva mai usata e come. Salta fuori che esiste uno sterminio di installazioni di django su github, perché apparentemente il tutorial delle Django Girls da qualche parte dà l'impressione che bisogna mettere il venv sotto git... e quindi tutti quelli che seguono quel tutorial finiscono per caricare venv di Django su github... poi ovviamente i furboni non cancellano la repo una volta finito il tutorial, e un poverocristo che sta cercando di venire a capo di un problema si trova alluvionato di risultati inutili.
Hai presente quanta menta ghiacciata c'è voluta quel giorno, per rilassarsi?