Abilità di JMP 14 Python - funzionanti? Non ho capito beneSto cercando di utilizzare le nuove funzionalità di JMP 14 per eseguire Python e non funziona.Fondamentalmente non trovando la mia installazione di Python, penso che in alcune circostanze si blocchi.
vidi un'altra discussione dicendo che c'erano problemi con quello in 14.1 e suggerendo una soluzione alternativa sull'impostazione delle variabili di ambiente e sull'utilizzo Usa versione Python("3.6") come argomento a Python Inizia() (entrambi i quali ho provato senza successo).
Poi ho visto nelle note di rilascio di 14.2 ulteriori informazioni su questo, incluso un nome diverso per la variabile di ambiente pertinente ...
https://www.jmp.com/support/help/14-2/how-jmp-finds-python-on-windows.shtml
Quindi, sono passato all'aggiornamento dalla 14.1 e ho visto che ora c'è la 14.3 e l'ho presa. quando provo le istruzioni della variabile d'ambiente dal post 14.2 ricevo un messaggio che dice che è deprecato e ora dovrebbe essere JMP_PYTHON_MODULE_PATH.Quindi ci ho provato, io pensare con un percorso valido per il file corretto, utilizzando lo stesso formato del post 14.2, ma ancora non funzionante.Mi è venuto in mente di provarlo anche nella mia versione per i primi utenti JMP15 e ho ottenuto gli stessi risultati, lo stesso messaggio che la variabile di ambiente dovrebbe essere chiamata JMP_PYTHON_MODULE_PATH.
In tutti i casi (14.1, 14.3, 15 early adopter, varie versioni delle variabili di ambiente) se non ho argomenti in Python Init(), JMP si blocca immediatamente su quella riga.Se ho UsePythonVersion("3.6") lì dentro ritorna con un errore che dice che non riesce a trovare Python..
Impossibile trovare un'installazione di Python su questo sistema. Il supporto di JMP Python richiede Python versione 3.0 o successiva. in accesso o valutazione di 'Python Init' , Python Init/*###*/(Use Python Version( "3.6" ))
Qualcuno lo sta usando con successo?In tal caso, stai inserendo qualcosa in Python Init ()?
o se hai usato l'impostazione di una variabile d'ambiente come si chiama e che aspetto ha?Qualche ulteriore consiglio per la risoluzione dei problemi?
Ecco come appare il mio ultimo tentativo di variabile d'ambiente ... non è questo il formato giusto? (il post precedente sembrava che la variabile d'ambiente avesse parentesi graffe e virgolette doppie come JMP voleva vedere è come un formato di elenco JSL ma questo sembra quello che il post 4.2 sta dicendo di fare e anche altri formati non hanno funzionato per me ...Un file python36.dll davvero fa sembra di essere in questo posto...
Non sono sicuro se sto riscontrando un problema strano specifico per il mio sistema su cui ho bisogno di supporto tecnico o se semplicemente non ottengo l'ultima versione di come dovrebbe funzionare.
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneL'utilizzo delle variabili di ambiente non è mai stato il percorso preferito. I parametri dello script JSL per Python Init() o Python Connect() sono sempre stati "supposti" come valori definitivi. Tutti i parametri sono facoltativi, ma specificando il percorso di python3x.dll e come ultima risorsa aggiungendo sys.path è necessario specificare completamente Python. L'integrazione di Python ha notevolmente migliorato il rilevamento di Python da JMP 14. A questo punto l'uso delle variabili di ambiente è probabilmente controproducente e non dovrebbe essere utilizzato (a meno che tu non abbia il tempo di giocherellare con le manopole e tutto il resto fallisca, è un percorso di codice alternativo). In JMP 16.1 e versioni successive i parametri dello script JSL "dovrebbero" sovrascrivere qualsiasi altra cosa...
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneSo che questa risposta è un po' in ritardo, ma questo argomento deve essere modificato e aggiornato per le versioni più recenti di JMP e Anaconda.Tieni presente che sono riuscito a integrare Python 3.8 con JMP 16 il 24/08/2021.
In diretta contraddizione con la "Soluzione" pubblicata in questo thread, NON modificare assolutamente alcuna variabile ambientale.
FARE.
NON.
Questa "Soluzione" mi ha fatto fallire nella mia integrazione e sviluppo per diverse settimane.Dopo aver installato JMP o aggiornato JMP, è necessario installare una nuova versione di Anaconda (è possibile utilizzare Anaconda Navigator) e assicurarsi che l'ambiente di base (root) in Anaconda sia almeno 3.8.3.Ho anche testato con successo su 3.8.8.
Puoi verificare il percorso e l'installazione procedendo come segue:
- Passare a C:\Program Files\SAS\JMP\\ (se non lo vedi qui controlla: C:\Program Files (x86)\SAS\JMP\\)
- Fare doppio clic su InstallChecker.exe (potrebbe solo dire Install Checker)
- Dopo aver visualizzato il report, scegli "Apri nel browser"
Dovresti quindi vedere un file XML e alla fine dovresti vedere quanto segue:
-
"/>
"/>
"/>
"/>
"/>
Nel mio caso l'integrazione ha avuto successo dopo aver modificato le variabili ambientali in:
"/>
"/>
Spero che questo aiuti e suggerirei caldamente di rimuovere la soluzione su questo thread perché semplicemente non funziona.
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneJMP 15.0 soffre ancora dello stesso problema. Ho installato l'Anaconda collegato senza l'opzione PATH e ha funzionato.
Nota che questo pacchetto è piuttosto vecchio, quindi dovrai aggiornare conda i tuoi pacchetti facendo attenzione a non andare ad aggiornare Python stesso 3.6.5 (3.6.9 non ha funzionato per me).
Spero che venga risolto nelle prossime versioni.
@FN ha scritto:
Posso confermare che con Windows 10 e JMP 14.2 funziona immediatamente, se:
Anaconda Python 3.6* 64bit è installato > https://repo.continuum.io/archive/Anaconda3-5.2.0-Windows-x86_64.exe ;
e l'opzione PATH è attivata (non sono richiesti diritti di amministratore)

Il mio punto era più sulla capacità di distribuire componenti aggiuntivi con una versione Python portatile in modo che gli utenti non debbano preoccuparsi dell'installazione, degli ambienti e del controllo delle versioni di Anaconda.
Grazie per l'aiuto. Non vedo l'ora di vedere una grande integrazione di Python nei seguenti aggiornamenti.
(*) Con la versione corrente di Anaconda, JMP si arresta in modo anomalo con questa configurazione.
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito benePer quanto riguarda la distribuzione, penso che andrà bene non appena Python non interferirà con le installazioni di altri utenti.
Ad esempio, sto cercando di chiamare Python da JMP 15 EA8 che si trova in una cartella specifica.
Questa cartella contiene tutti i file di installazione di Anaconda/miniconda, che ho copiato in una cartella prima di disinstallarlo. Il codice ha funzionato quando è stato installato. Ora, sembra che JMP non utilizzi il percorso che sto specificando.
Set Environment Variable( "JMP_PYTHON_MODULE_PATH",
"\["", "C:/Users/xxx/JMP_scripting/python/miniconda3/python36.zip",
"C:/Users/xxx/JMP_scripting/python/miniconda3/DLLs",
"C:/Users/xxx/JMP_scripting/python/miniconda3/lib",
"C:/Users/xxx/JMP_scripting/python/miniconda3",
"C:/Users/xxx/JMP_scripting/python/miniconda3/lib/site-packages",
"C:/Users/xxx/JMP_scripting/python/miniconda3/lib/site-packages/win32",
"C:/Users/xxx/JMP_scripting/python/miniconda3/lib/site-packages/win32/lib",
"C:/Users/xxx/JMP_scripting/python/miniconda3/lib/site-packages/Pythonwin"]\"
);
Python Init (Path("C:\Users\xxx\JMP_scripting\python\miniconda3"),
Init Trace("TRUE"),
Debug Print Statements ("TRUE"),
Debug Print Output("TRUE") );
Python Submit( "\[basket = ["apple", "orange", "pear"]
print(basket)]\" );
Python Term();
Errore in JMP 15 EA8

Errore in JMP Pro 14.2:
Impossibile trovare un'installazione di Python su questo sistema. Il supporto di JMP Python richiede Python versione 3.0 o successiva. in accesso o valutazione di 'Python Init' , Python Init/*####*/(Path(
"C:\Utenti\xxx\JMP_scripting\python\miniconda3"
))
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneCarino! Questo è un ottimo caso d'uso.
Mentre cerchi il flusso di lavoro JMP + Python ideale, vale la pena notare che JMP (Pro) può generare codice di punteggio Python per i modelli JMP. Ciò supporta l'integrazione nell'altra direzione: spingendo le funzionalità di JMP nel mondo Python.
Ad esempio, supponiamo di voler applicare un modello JMP a una tabella di dati di grandi dimensioni in Oracle, è possibile convertire il modello in Python e valutarlo nel database utilizzando UDF (il supporto sembra tuttavia essere sperimentale):
https://oracle.github.io/oracle-db-mle/python/
Oppure puoi condividere il tuo modello JMP con il tuo collega Python in modo che possa eseguirlo in un notebook Jupyter e così via.
Inoltre, JMP 15.0 semplificherà la visualizzazione di immagini esterne come miniature nelle descrizioni comandi della visualizzazione dei dati. Ciò ridurrebbe/eliminerebbe la necessità di importarli direttamente nelle tabelle JMP, mantenendole più piccole. Ovviamente c'è un costo in termini di prestazioni, ma potrebbe essere un degno compromesso. Tieni d'occhio quello.
Grazie per la condivisione! Tienici aggiornati sul tuo viaggio!
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneSembra fantastico - grazie!Non ho tempo di provarlo per almeno un paio di settimane (e ho rifatto completamente la mia installazione di Python senza ambiente virtuale, quindi ci vorrà un po' per provarlo) ma sarò ansioso di provarlo presto.
La cosa che ha davvero dato il via al mio uso di Python è la classificazione delle immagini con tensorflow e keras.Sto eseguendo uno script JMP che interroga le immagini pertinenti e chiama python per eseguire il mio modello e quindi invia i risultati a Oracle.L'intero compito è qualcosa che probabilmente finirò per fare in Python, ma che sto facendo in JSL perché finora sono molto più abile in questo - sto solo imparando in Python - e ho già un intero schema per eseguire lavori automatizzati JSL , hanno funzioni create per inviare tabelle al nostro Oracle, ecc.
Tuttavia, mentre pensavo che l'intero progetto non sarebbe stato intrinsecamente correlato a JMP, in realtà ho scoperto che avere immagini in una tabella JMP accanto ad altri dati in cui è possibile interagire con loro in tutti i soliti modi JMP è davvero utile: ordinare, selezionare in base ad altri colonne di dati, ecc. Ciò mi ha spronato a fare una serie di altri componenti aggiuntivi relativi alle immagini.Resta da vedere se alla fine c'è una vera necessità nel mio progetto di richiamare Python durante una sessione JMP interattiva dal vivo o possono essere separati (uno strumento che esamina i risultati del modello tf in modo interattivo solo interrogando i risultati da Oracle, non chiamando direttamente Python per eseguire i modelli dal vivo?) ma attualmente li sto usando insieme.
Ad ogni modo, questa è la cosa non in JMP che sto usando Python per ora. Sto cercando di imparare di più su Python e di avere colleghi esperti in esso e credo che probabilmente troverò più cose in cui potrei effettivamente chiamare Python per unire le sue capacità con JMP.
Grazie!
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneCiao @hardner ,
Buono a sapersi che hai usato di più Python con JMP. Se puoi condividere ciò che hai fatto, ci piacerebbe saperlo!
Per quanto riguarda il supporto per gli ambienti virtuali, ti ascolto. Fa una grande differenza in termini di organizzazione delle tue dipendenze E aiuta i tuoi colleghi a riprodurre il tuo ambiente per eseguire i tuoi componenti aggiuntivi.
Ecco perché ho messo insieme una piccola libreria che aiuta proprio con questo problema. Si prega di controllare:
https://community.jmp.com/t5/JMP-Scripts/Anaconda-Environments-Integration/ta-p/221565
Molti esempi, testati in 14.3 e 15.1. Ma, almeno per ora, solo per Windows e specifico per Anaconda.
Fammi sapere se ti funziona!
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneCiao!
Tornando a questo thread come OP per dire ...
- Uso Python di più dal mio post originale e quello che ho detto funzionava per me ha continuato a funzionare.:)
- Apprezzo gli sforzi per supportare Python, tanto più ora che ho trovato cose specifiche per cui usarlo. Grazie!
- Come FN, trovo problematica la condivisione di componenti aggiuntivi che chiamano Python. Condivido molti componenti aggiuntivi.Lo sto usando ora solo per me stesso e per i lavori che eseguo che poi condividono i risultati con altri ma non negli script che devono essere eseguiti da altri.Dovrei dare istruzioni complicate sull'installazione di Python e pacchetti e preoccuparmi delle versioni specifiche che lavorano insieme (lo stesso problema si verifica con R che uso ma non negli script condivisi).Ma se una particolare versione fosse incapsulata all'interno di JMP, limiterebbe ciò che possiamo fare con essa.Continuo a pensare che forse il supporto di ambienti virtuali potrebbe aiutare, quindi potrei istruire e supportare gli utenti sulla configurazione di un'installazione secondo le mie specifiche per un particolare strumento che desiderano utilizzare e non interferire con altre attività Python sulla loro macchina.Ma non sono proprio sicuro di cosa sarebbe meglio e non sono così entusiasta di risolvere i problemi relativi alle installazioni di Python per gli utenti.Quindi solo concordare che non è l'ideale e notare che ho un certo interesse a sfruttare maggiormente questa capacità.
Grazie!
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito benePosso confermare che con Windows 10 e JMP 14.2 funziona immediatamente, se:
Anaconda Python 3.6* 64bit è installato > https://repo.continuum.io/archive/Anaconda3-5.2.0-Windows-x86_64.exe ;
e l'opzione PATH è attivata (non sono richiesti diritti di amministratore)

Il mio punto era più sulla capacità di distribuire componenti aggiuntivi con una versione Python portatile in modo che gli utenti non debbano preoccuparsi dell'installazione, degli ambienti e del controllo delle versioni di Anaconda.
Grazie per l'aiuto. Non vedo l'ora di vedere una grande integrazione di Python nei seguenti aggiornamenti.
(*) Con la versione corrente di Anaconda, JMP si arresta in modo anomalo con questa configurazione.
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneNon sono sicuro di aver capito la tua domanda. L'installazione di Python per tutti gli utenti richiede effettivamente l'accesso come amministratore, ma l'utilizzo di Python installato non richiede l'accesso come amministratore. Un componente aggiuntivo JMP chiamato Python non richiederebbe l'accesso come amministratore per l'installazione o l'esecuzione. Sì, i pacchetti Python aggiuntivi installati per tutti gli utenti richiederebbero l'accesso come amministratore. Dovresti essere in grado di installare i pacchetti locali del sito in base all'utente che non richiedono l'installazione da parte dell'amministratore. Questo è qualcosa che intendevo testare, ma ho avuto la possibilità di provare. Potrebbe essere necessario aggiornare sys.path per aggiungere la posizione dei pacchetti locali del sito.
Per quanto riguarda la documentazione di JMP 15, so che alcune di queste discussioni sono arrivate. Sfortunatamente, non tutto è stato trasformato in documenti prima del taglio. Lavoreremo per ottenere il resto attraverso le versioni di manutenzione.
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneL'installazione per tutti gli utenti richiede anche i diritti di amministratore, il che non è conveniente quando si distribuisce un componente aggiuntivo che chiama Python.
La documentazione di JMP 15 includerà ciò che è stato discusso qui?
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneSiamo stati in grado di replicare su una macchina di sviluppo, l'uscita improvvisa di JMP durante il tentativo di caricare Python 3.7.Si scopre che noi (JMP) non siamo i soli ad avere problemi con Python 3.7 e Python 3.8 specialmente in un caso incorporato.L'errore che abbiamo ricevuto da Python è:
Errore irreversibile di Python: impossibile caricare il codec del file system
Eccezione non gestita in 0x00007FFE84F9B64E (ucrtbase.dll) in Jmp.exe: richiesta di uscita irreversibile dal programma.
IL soluzione al momento, è usare Python 3.6.5 o 3.6.x più recente, oppure devi installare Python 3.7.x su Windows come installazione per tutti gli utenti, non solo tu l'utente locale E DEVI scegliere l'opzione per mettere il Python nel tuo PERCORSO.Ciò contraddice direttamente la finestra di dialogo di installazione di Anaconda3, avvertendo di non inserirlo nel percorso.
La mia macchina di sviluppo funziona bene con 3.7.1 installato come installazione a livello di sistema ed è il Python predefinito sul percorso.Sulla macchina del mio collega in cui siamo stati in grado di replicare l'interruzione improvvisa di JMP, abbiamo installato Python 3.7.1 utilizzando le opzioni di installazione predefinite che hanno reso un'installazione locale non sul percorso.Siamo riusciti a impedire l'uscita di JMP impostando la variabile d'ambiente PYTHONHOME= 'la directory anaconda3' Ma anche qui non siamo riusciti a farlo caricare numpy, scipi, pandas o sqlite3, nemmeno da un prompt della console. Dove sulla mia macchina tutto funziona come previsto.
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito benealtro su UsePythonVersion("3.6"), nel caso sia utile....
questa riga non funziona quando JMP viene aperto per la prima volta...
Python Init(Usa versione Python( "3.6" ), InitTrace( "True" ));
Ecco cosa mostra il registro da InitTrace()...
Elaborazione dell'operatore OpPythonInit
Avvio dell'inizializzazione dell'interfaccia da JMP a Python
Interroga HKEY_CURRENT_USER
Lettura hKey=0XFFFFFFFF80000001 kname=SOFTWARE\Python\PythonCore bits=64
Trovata hKey=0xFFFFFFFF80000001 kname=SOFTWARE\Python\PythonCore bits=64
# di sottochiavi=1
Recupero della sottochiave #=0
sottochiave=3.6 lunghezza=3
Sottochiave di apertura=3.6
Chiave di apertura=3.6 sottochiave=InstallPath
Valore query key=3.6 sottochiave=InstallPath
Valore query chiave=3.6 sottochiave=InstallPath valore=C:\Users\12470\AppData\Local\Continuum\anaconda3
Chiave di apertura=3.6 sottochiave=PythonPath
Valore della query key=3.6 sottochiave=PythonPath
Percorso di creazione della versione=3.6 della DLL di Python
Impossibile trovare un'installazione di Python su questo sistema. Il supporto di JMP Python richiede Python versione 3.0 o successiva. in accesso o valutazione di 'Python Init' , Python Init/*###*/(Use Python Version( "3.6" ), InitTrace( "True" ))
Questo accade ripetutamente se eseguo la riga più e più volte, ma se eseguo questa versione senza UsePythonVersion ...
Python Init(InitTrace( "True" ));
Non solo funziona, ma anche la versione originale con l'argomento UsePythonVersion("3.6") inizia a funzionare, mentre questa sessione JMP è aperta.Ecco cosa mostra il registro da quella traccia init in quel caso.il percorso che mostra lì sembra lo stesso e corretto per me in entrambi i casi ....
Interroga HKEY_CURRENT_USER
Lettura hKey=0XFFFFFFFF80000001 kname=SOFTWARE\Python\PythonCore bits=64
Trovata hKey=0xFFFFFFFF80000001 kname=SOFTWARE\Python\PythonCore bits=64
# di sottochiavi=1
Recupero della sottochiave #=0
sottochiave=3.6 lunghezza=3
Sottochiave di apertura=3.6
Chiave di apertura=3.6 sottochiave=InstallPath
Valore query key=3.6 sottochiave=InstallPath
Valore query chiave=3.6 sottochiave=InstallPath valore=C:\Users\12470\AppData\Local\Continuum\anaconda3
Chiave di apertura=3.6 sottochiave=PythonPath
Valore della query key=3.6 sottochiave=PythonPath
Percorso di creazione della versione=3.6 della DLL di Python
Percorso DLL Python=C:\Users\12470\AppData\Local\Continuum\anaconda3\python36.dll
sys.path entry.jstr:C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\Lib
sys.path entry.jstr:C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\DLL
PRIMA:
/**********/
print(_JMPsys.percorso)
/**********/
['C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\python36.zip', 'C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3 \\Lib', 'C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\DLLs', 'C:\\Program Files\\SAS\\JMP\\14', ' C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3', 'C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\lib\\site- packages', 'C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\Babel-2.5.0-py3.6.egg', 'C: \\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\12470\\AppData\\Local\\Continuum\ \anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\Pythonwin ']
DOPO:
/**********/
print(_JMPsys.percorso)
/**********/
['', 'C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\python36.zip', 'C:\\Users\\12470\\AppData\\Local\\Continuum \\anaconda3\\Lib', 'C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\DLLs', 'C:\\Users\\12470\\AppData\\Local\ \Continuum\\anaconda3', 'C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages', 'C:\\Users\\12470\\AppData \\Local\\Continuum\\anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\lib\\site- packages\\win32\\lib', 'C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\Pythonwin']
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneLavorando!
Ecco cosa ha funzionato per me:
Ho reinstallato Anaconda usando uno archiviato pensato per Python 3.6 (per evitare di usare un ambiente virtuale per 3.6).Ecco dove è installato, come il precedente solo senza altri 2 livelli per l'env virtuale nella cartella anaconda3):
C:\Users\12470\AppData\Local\Continuum\anaconda3\python36.dll
Imposta la variabile di ambiente JMP_PYTHON_MODULE_PATH sul percorso precedente per python36.dll
Non ha usato l'argomento UsePythonVersion("3.6") in python init(), che dà l'errore "impossibile trovare l'installazione".
Nulla di ciò che sto provando dopo la reinstallazione sta, finora, causando un arresto anomalo.Devo ammettere che non ho fatto molto, ma sembra che fosse qualcosa nell'ambiente virtuale a causare l'arresto anomalo (?).I test limitati che ho fatto finora funzionano sia in 14.3 che in 15EA.
Grazie!
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito bene@Paolo_Nelson & @Jeff_Perkinson ,
JMP aggiornato alla 14.3 e può confermare che l'arresto anomalo continua. Fammi sapere se hai bisogno di ulteriori informazioni.
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneLa prima cosa da fare è aggiornare a una versione più recente di JMP 14. Il 14.0.0 originale funzionava bene se poteva rilevare automaticamente l'installazione corretta di Python. Ma, se non è riuscito a localizzare correttamente Python, nessuno degli altri metodi ha funzionato bene. Il lavoro nei successivi aggiornamenti 14.1, 14.2,… ha fatto funzionare meglio le altre alternative, il controllo delle variabili d'ambiente, l'utilizzo delle variabili Python Init(). Potrebbe ancora non funzionare nel tuo ambiente specifico, ma questo è il primo punto di partenza.
Dovresti continuare a lavorare con il supporto tecnico di JMP. Passando attraverso il supporto tecnico, tutti i clienti JMP traggono vantaggio da ciò che elaboriamo su questo problema. Al momento ci vorrà ancora un po' di approfondimento nel codice, qualche ulteriore strumentazione del codice e qualche ulteriore protezione antiproiettile del codice, potrebbe anche essere necessario scrivere un test o un programma diagnostico.
Grazie per la vostra pazienza.
Paolo
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito benePer quello che vale, i miei sono sicuramente entrambi a 64 bit e anche io ho il crash.L'unica volta che il mio non va in crash su Python Init() è con l'argomento Use Python Version() quando ricevo il messaggio "impossibile trovare".Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito bene@hardner E @Paolo_Nelson ,
Paul, posso essere d'accordo con @hardner le osservazioni di. Va bene chiederti di fare un webex con noi potrebbe essere domani o forse la prossima settimana, cosa funziona per te, dove puoi guardare le nostre installazioni e dirci perché non funziona? Quindi probabilmente puoi pubblicare un rinnovato articolo sul blog sulla comunità basato sugli insegnamenti che apprendiamo dall'incontro? È qualcosa che potresti fare?
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito benePer quello che vale, i miei sono sicuramente entrambi a 64 bit e anche io ho il crash.L'unica volta che il mio non va in crash su Python Init() è con l'argomento Use Python Version() quando ricevo il messaggio "impossibile trovare".
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneAggiornerei anche all'ultima versione di JMP 14. È stato svolto lavoro aggiuntivo in ogni versione di JMP 14.x per migliorare la ricerca di Python e il caricamento corretto.Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneSperavo in una discrepanza e i tuoi problemi sarebbero stati improvvisamente risolti.
Ho appena aggiunto del codice aggiuntivo per rilevare le eccezioni quando proviamo a caricare Python. Guarderò anche l'aggiunta di codice in modo che Init Trace ("TRUE") scriva su un file e sul registro in modo da poter ottenere una traccia del percorso di esecuzione per l'inizializzazione di Python. Si spera che entrambi dovrebbero essere nel prossimo JMP 15 EA. (non sono sicuro di quando è dovuto il prossimo).
Paolo
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito bene@Paolo_Nelson ,
Infatti. Ho verificato e convalidato che sia JMP che Python sono entrambi a 64 bit.


Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneHai verificato che il tuo Python e JMP sono la stessa bit-ness. 32 bit o 64 bit. La mancanza di un file di dump indica che JMP sta probabilmente andando giù quando tenta di caricare Python come libreria condivisa. In caso di mancata corrispondenza tra JMP a 32 bit/Python a 64 bit o JMP a 64 bit/Python a 32 bit, garantirebbe un arresto anomalo.
Questo è qualcosa che JMP dovrebbe provare a convalidare prima di tentare il caricamento e qualcosa che dovremmo tentare di rilevare, ma potrebbe comunque essere una condizione irreversibile. Ma sarebbe bene se JMP potesse dare qualche notifica.
Paolo
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito bene@Paolo_Nelson ,
Ho un caso in corso con il supporto tecnico su questo problema - SAS 7612709398.
Ho provato a includere la traccia come hai suggerito e questo blocca Jmp. Tuttavia, non vedo un file .dmp o un file .jer generato che posso fornire al supporto tecnico.
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneIl supporto degli ambienti virtuali Python è qualcosa che stiamo guardando.
Il rovescio della medaglia è questa domanda:
Supportare la varietà di versioni di Python installate dall'utente è troppo difficile da eseguire e continuare a funzionare?
In tal caso, la soluzione potrebbe essere una versione di Python fornita e installata da JMP, testata e nota per funzionare con JMP senza problemi. I problemi che comportano includono il supporto dell'installazione di pacchetti ed estensioni locali in un ambiente Python fornito da JMP.
Al momento preferiremmo supportare il Python installato dall'utente, ma come hai sperimentato la varietà in natura può renderlo una sfida.
Grazie,
Paolo
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneGrazie per tutto questo.
Abbastanza sicuro delle cose che menzioni il mio problema è "JMP al momento non è a conoscenza degli ambienti virtuali".
Avendo installato Anaconda più recente con python 3.7 al suo interno, quindi scoprendo di voler utilizzare tensorflow che richiede 3.6, ho eseguito la prima delle opzioni descritte qui ... impostare un ambiente python3.6.
https://docs.anaconda.com/anaconda/user-guide/faq/#anaconda-faq-35
Dato che sto solo andando avanti con Python e non ho un bisogno speciale di 3.7 - che io sappia - penso che potrei disinstallarlo tutto e ricominciare da capo con un'altra delle opzioni, come un pacchetto di installazione Anaconda archiviato con 3.6 . Vedrò come va.
Ma sembra che questo tipo di "necessità di versioni diverse per cose diverse" sia comune, come lo è per R - è stata la lettura di questo caso che mi ha fatto immergere in quell'opzione dall'aspetto più complicato e il link sopra non era l'unico posto ho visto il consiglio di utilizzare un ambiente virtuale.Quindi mi chiedo se puoi dire altro sui piani per potergli dire di operare in un particolare ambiente virtuale.
La cosa InitTrace("TRUE") blocca JMP per me.Ma forse se non avessi il mio percorso che coinvolge un ambiente virtuale sarebbe diverso. Lavorerà su questo e aprirà un caso di supporto tecnico per ulteriore aiuto.Grazie!
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneSo che è frustrante per noi quanto lo è per te. Stiamo avendo difficoltà a replicare il problema sulle nostre macchine, ma sappiamo che ci sono alcuni clienti che hanno problemi. La maggior parte delle nostre macchine sono simili, con la stessa immagine aziendale... Una cosa importante, il bit di JMP e Python deve corrispondere. Poiché JMP carica Python come libreria condivisa, non è possibile combinare JMP e Python con bit diversi. Se hai JMP a 32 bit, devi puntare a un Python 3.6.1 a 32 bit o successivo. Se hai JMP a 64 bit, deve essere un Python 3.6.1 a 64 bit o successivo. Abbiamo trovato le migliori possibilità di successo se hai una sola installazione di Python sul tuo sistema. In JMP 14.1 se ce n'era più di uno nel sistema, non tentava nemmeno di caricare Python. JMP al momento non è a conoscenza degli ambienti virtuali.
Coloro che hanno problemi, prova la seguente opzione nel tuo Python Inizia()
Inizializzazione Python( Avvia traccia("TRUE") );
Questa opzione, probabilmente non documentata (scusate), farà sì che JMP scarichi molti dettagli su dove pensa che Python si trovi, inclusi i percorsi che vede e le voci di registro per Python che scopre. Si prega di includere l'output quando si contatta il supporto tecnico.
Puoi determinare quale bit stai eseguendo il seguente script Python nel tuo ambiente
struttura di importazione
print( struct.calcsize("P") *8)
Questo dovrebbe stampare 32 o 64 in base al numero di bit di Python in esecuzione.
Nota: JMP 14 potrebbe essere a 32 o 64 bit a seconda della versione. Shrink-wrap è sempre a 32 bit
JMP 15 è solo a 64 bit.
Cercherò di documentare al meglio l'Init() di Python e le variabili d'ambiente.
JMP 15 aggiunge 2 nuove variabili di ambiente che sta cercando:
JMP_LIB_PYTHON_PATH - questo è il percorso completo della libreria condivisa.
JMP_PYTHON_MODULE_PATH - sys.path di Python come ci si aspetterebbe nelle variabili di ambiente Windows o MacOS. Su Windows un elenco separato da punti e virgola, su MacOS un elenco separato da due punti, NON un elenco JSL.
Sulla mia macchina ho installato Anaconda 3.7.1 64-bit in C:\ProgramData\Anaconda3
sembrerebbe
JMP_LIB_PYTHON_PATH=C:\ProgramData\Anaconda3\python37.dll
Il percorso della dll dovrebbe essere sufficiente... e dovrebbe essere sufficiente che Python Init() possa essere utilizzato senza parametri. Con JMP_LIB_PYTHON_PATH e JMP_PYTHON_MODULE_PATH specificati, Python dovrebbe essere completamente specificato anche con più di un interprete Python e Python Init() dovrebbe funzionare.
Come discusso 'Python sys path' come una variabile d'ambiente è stato deprecato perché non segue le normali convenzioni per le variabili d'ambiente della shell su Windows o MacOS. Ha spazi nel nome della variabile e si aspetta un elenco JSL di componenti di percorso { , } NON i percorsi delimitati da due punti previsti su UNIX oi percorsi delimitati da punto e virgola previsti su Windows.
Abbiamo fatto un tentativo di prestare maggiore attenzione alle variabili d'ambiente Python PYTHONPATH e PYTHONHOME. Dalla documentazione Python la descrizione di queste variabili è:
PYTHONHOME
Cambia la posizione delle librerie Python standard. Per impostazione predefinita, le ricerche vengono eseguite nelle librerie
prefix/lib/pythonversion e exec_prefix/lib/pythonversion, dove prefix e exec_prefix sono
directory dipendenti dall'installazione, entrambe con impostazione predefinita /usr/local.
Quando PYTHONHOME è impostato su una singola directory, il suo valore sostituisce sia prefix che exec_prefix.
Per specificare valori diversi per questi, impostare PYTHONHOME su prefix:exec_prefix.
PYTHONPATH
Aumenta il percorso di ricerca predefinito per i file del modulo. Il formato è lo stesso della shell
PATH: uno o più percorsi di directory separati da os.pathsep (es. due punti su Unix o
punto e virgola su Windows). Le directory inesistenti vengono silenziosamente ignorate.
Oltre alle normali directory, le singole voci PYTHONPATH possono fare riferimento a file zip
contenente moduli Python puri (in forma sorgente o compilata). Moduli di estensione
non può essere importato da file zip.
Il percorso di ricerca predefinito dipende dall'installazione, ma generalmente inizia con prefix/lib/pythonversion
(vedi PYTHONHOME sopra). È sempre aggiunto a PYTHONPATH.
Una directory aggiuntiva verrà inserita nel percorso di ricerca davanti a PYTHONPATH come descritto sopra
in Opzioni interfaccia. Il percorso di ricerca può essere manipolato dall'interno di un programma Python come variabile sys.path.
L'ordine dei precedenti in cui JMP 15 cerca le variabili di ambiente:
Ordine di precedenza delle variabili di ambiente e dello script JSL dal più alto al più basso
- Specificato all'interno dello script JSL in Inizializzazione Python( Sentiero("") , Usa versione Python("") , Percorso Python sys( { "",... } ), ... )
- Specificato nelle variabili di ambiente System/Shell
- Auto localizzato
- Registro, trovato su PATH var, o System shell per eseguire python o conda, ... e dovrebbe preferire un Python installato localmente
su un sistema a livello di installazione Python se esistono entrambi
PMP 14
Ho guardato prima la variabile d'ambiente 'Python sys path' che potrebbe essere il percorso della dll o il sys.path completo espresso come un elenco JSL {"","",... }
PYTHONINSTALLPATH = il percorso della directory di primo livello contenente l'installazione di Python o la directory contenente la libreria condivisa di Python.
IL Python Inizia() dichiarazione
Parametri:
Path() - Il percorso completo della dll o della directory di primo livello Python contenente la dll.
Usa Python Version() - stringa tra virgolette della versione major.minor di Python. Spesso sufficiente da solo quando viene trovato più di un Python.
Python sys path() - l'elenco JSL di percorsi di stringhe tra virgolette che corrispondono al valore Python sys.path. La specifica di questi 3 dovrebbe specificare completamente l'installazione di Python e dovrebbe sovrascrivere qualsiasi ambiente o valore di registro.
Init Trace("TRUE") - output di debug durante l'inizializzazione di Python di JMP nel registro di JMP
Dichiarazioni di stampa di debug ("TRUE"); - stampa direttamente le istruzioni Python nel registro JMP
Debug Output di stampa("TRUE"); - stampa direttamente l'output Python nel registro JMP
JMP 14 Python Init() accetta anche facoltativamente quanto segue: Usane solo uno o l'altro, e corrispondendo al numero di bit dell'installazione di JMP. JMP a 32 bit non può utilizzare Python a 64 bit e JMP a 64 bit non può utilizzare Python a 32 bit.
Usa Python a 32 bit ("VERO")
Usa Python a 64 bit ("VERO")
JMP 15 ha rimosso i parametri facoltativi di cui sopra poiché JMP 15 è a 64 bit e può soltanto usa Python a 64 bit. Tutti i parametri a Python Inizia() sono facoltativi, se il rilevamento automatico nel registro o le variabili di ambiente puntano a un Python valido, nient'altro Dovrebbe necessario nel tuo Python Inizia()
Non esitare a contattare il supporto tecnico di JMP, desideriamo che le funzionalità di Python in JMP siano utili e migliorino la potenza fornita da JMP. Vogliamo risolvere questi problemi in modo che funzioni.
Paolo
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneseguente...
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito beneGrazie! andrà bene. Posso solo aggiungere che ho anche provato a inserire path() di dll all'interno di python init() e anche questo si arresta in modo anomalo invece di lamentarsi almeno di non riuscire a trovarlo. Nel complesso probabilmente ho bisogno anche dell'aiuto del supporto tecnico, ma speravo che ci fosse solo qualche chiarimento che sarebbe stato utile anche ad altri.Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito benePosso confermare che nonostante l'installazione della mia distribuzione anaconda in C:\ e l'impostazione di una variabile d'ambiente come dettagliato nel inviare , non riesco a farlo funzionare. Continua a causare l'arresto anomalo di JMP. Ti aggiornerò se avrò una risposta dal supporto tecnico, se lo capisci, gentilmente fai lo stesso
Ri: Abilità di JMP 14 Python - funzionanti? Non ho capito bene@hardner ,
Sono nella tua stessa situazione. Sto provando a configurare JMP per Python da circa 2 settimane. Mi sono integrato con successo con SAS e R di JMP, tuttavia l'integrazione di Python è stata a dir poco poco chiara ed elaborata. Sono deluso di sapere che anche i primi utenti di JMP 15 non hanno alcun miglioramento per correggere questa integrazione. Anche io stavo seguendo da vicino questo inviare e speravo che venisse risolto in JMP 15 e che diventasse un'integrazione più fluida.
Attualmente sto usando JMP 14 e Python 3.7.1. Mi è stato consigliato di installare la distribuzione Python/Anaconda direttamente sotto C:/ root e sto per provarci. Nel caso in cui funzioni, ti darò un avviso su ciò che ha funzionato e aggiornerò qui.