JMP 14 Python 能力 - 有效嗎? 我很困惑我正在嘗試使用 JMP 14 中的新功能來運行 python,但它不起作用。基本上找不到我的 python 安裝,我認為雖然在某些情況下它只是崩潰了。
我看見另一種討論說 14.1 中存在問題,並建議設置環境變量和使用的解決方法使用Python版本(“3.6”)作為一個論據Python 初始化() (這兩種方法我都嘗試過,但均未成功)。
然後我在 14.2 的發行說明中看到了更多相關內容,包括相關環境變量的不同名稱......
https://www.jmp.com/support/help/14-2/how-jmp-finds-python-on-windows.shtml
所以,我從 14.1 升級,看到現在有 14.3,然後就明白了。當我嘗試 14.2 帖子中的環境變量指令時,我收到一條消息,指出該指令已被棄用,現在它應該是 JMP_PYTHON_MODULE_PATH。所以我嘗試了一下,我思考具有正確文件的有效路徑,使用 14.2 帖子中的相同格式,但仍然無法正常工作。我也想到在 JMP15 早期採用者版本中嘗試此操作,並得到相同的結果和相同的消息,即環境變量應稱為 JMP_PYTHON_MODULE_PATH。
在所有情況下(14.1、14.3、15 早期採用者、環境變量的各種版本),如果我在 Python Init() 中沒有參數,JMP 會立即在那一行崩潰。如果我在那裡有 UsePythonVersion("3.6") ,它會返回一個錯誤,說它根本找不到 Python 。
在此系統上找不到 Python 安裝。 JMP Python 支持需要 Python 3.0 或更高版本。在訪問或評估 'Python Init' 時,Python Init/*###*/(Use Python Version( "3.6" ))
有人使用這個成功嗎?如果是的話,你是否在 Python Init() 中添加了一些東西?
或者,如果您使用設置環境變量,它的名稱是什麼?它是什麼樣子?還有進一步的故障排除建議嗎?
這是我對環境變量的最新嘗試......這不是正確的格式嗎? (之前的帖子看起來環境變量有大括號和雙引號,就像JMP 希望看到的那樣是JSL 列表格式,但這看起來像4.2 帖子所說的那樣,其他格式也不適合我.... ..確實是一個 python36.dll 文件做好像就在這個位置...
不確定我是否遇到了特定於我的系統的怪異問題,需要技術支持,或者我是否只是沒有獲得其工作原理的最新版本。
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑使用環境變量從來都不是首選途徑。 Python Init() 或 Python Connect() 的 JSL 腳本參數始終“應該”是確定值。 所有參數都是可選的,但指定 python3x.dll 的路徑並作為添加 sys.path 的最後手段應完全指定 Python。 自 JMP 14 以來,Python 集成顯著改進了 Python 檢測。 此時,使用環境變量可能會適得其反,因此不應使用(除非您有時間擺弄旋鈕並且其他所有方法都失敗了,否則它是備用代碼路徑)。 在 JMP 16.1 及更高版本中,JSL 腳本參數“應該”覆蓋其他任何內容...
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑我知道這個回復有點晚了,但這個主題需要針對較新版本的 JMP 和 Anaconda 進行編輯和更新。請注意,我於 2021 年 8 月 24 日成功將 python 3.8 與 JMP 16 集成。
與此線程中發布的“解決方案”直接矛盾,請勿更改任何環境變量。
做。
不是。
這個“解決方案”導致我幾週的集成和開發都失敗了。安裝 JMP 或更新 JMP 後,您應該安裝新版本的 Anaconda(可以使用 Anaconda Navigator),並確保 Anaconda 中的基礎(根)環境至少為 3.8.3。我也在3.8.8上測試成功。
您可以通過執行以下操作來驗證路徑和安裝:
- 導航到 C:\Program Files\SAS\JMP\\(如果您在此處沒有看到它,請檢查:C:\Program Files (x86)\SAS\JMP\\)
- 雙擊InstallChecker.exe(它可能只是說Install Checker)
- 顯示報告後,選擇“在瀏覽器中打開”
然後您應該會看到一個 XML 文件,最後您應該會看到以下內容:
-<類別名稱=“Python集成”>
"/>
"/>
"/>
"/>
"/>
就我而言,在將環境變量更改為以下內容後,集成成功:
"/>
"/>
我希望這會有所幫助,並且我強烈建議刪除此線程上的解決方案,因為它根本不起作用。
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑JMP 15.0 仍然遇到同樣的問題。 我在沒有 PATH 選項的情況下安裝了鏈接的 Anaconda,並且它有效。
請注意,這個包相當舊,因此您需要 conda 更新您的包,小心不要去更新 Python 本身 3.6.5(3.6.9 對我來說不起作用)。
我希望它在下一個版本中得到修復。
@FN寫道:
我可以確認,在 Windows 10 和 JMP 14.2 中,它可以開箱即用,如果:
Anaconda Python 3.6* 64位已安裝> https://repo.continuum.io/archive/Anaconda3-5.2.0-Windows-x86_64.exe ;
並且 PATH 選項已激活(無需管理員權限)

我的觀點更多的是關於使用可移植的 Python 版本部署插件的能力,因此用戶無需為 Anaconda 安裝、環境和版本控製而煩惱。
謝謝您的幫助。 期待在接下來的更新中看到出色的 Python 集成。
(*) 對於當前版本的 Anaconda,JMP 使用此配置會崩潰。
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑關於部署,我認為只要Python不干擾其他用戶安裝就可以了。
例如,我嘗試從位於一個特定文件夾中的 JMP 15 EA8 調用 Python。
該文件夾包含Anaconda/miniconda的所有安裝文件,我在卸載之前將其複製到一個文件夾中。 該代碼在安裝時有效。 現在,JMP 似乎不使用我指定的路徑。
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();
JMP 15 EA8 中的錯誤

JMP Pro 14.2 中的錯誤:
在此系統上找不到 Python 安裝。 JMP Python 支持需要 Python 3.0 或更高版本。在訪問或評估 'Python Init' 時,Python Init/*###*/(Path(
“C:\Users\xxx\JMP_scripting\python\miniconda3”
))
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑好的! 這是一個很好的用例。
當您尋找理想的 JMP + Python 工作流程時,值得注意的是,JMP (Pro) 可以為 JMP 模型生成 Python 評分代碼。 這支持另一個方向的集成:將 JMP 功能推入 Python 世界。
例如,假設您想將 JMP 模型應用於 Oracle 中的大型數據表,您可以將該模型轉換為 Python 並使用 UDF 在數據庫中對其進行評分(儘管支持似乎是實驗性的):
https://oracle.github.io/oracle-db-mle/python/
或者,您可以與 Python 同事共享您的 JMP 模型,以便她可以在 Jupyter 筆記本中運行該模型,等等。
此外,JMP 15.0 還可以更輕鬆地在數據可視化工具提示中將外部圖像顯示為縮略圖。 這將減少/消除將它們直接導入 JMP 表的需要,從而使它們更小。 當然會有性能成本,但這可能是值得的權衡。 請留意這一點。
感謝分享! 讓我們隨時了解您的旅程!
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑這看起來很棒 - 謝謝!我至少幾週沒有時間測試它(並且我完全重新安裝了我的Python安裝,沒有虛擬環境,所以需要一些努力來嘗試這個),但我很快就會熱衷於測試它。
真正讓我開始使用Python的是使用tensorflow和keras對圖像進行分類。我正在運行一個 JMP 腳本,該腳本查詢相關圖像並調用 python 來運行我的模型,然後將結果推送到 Oracle。整個任務我可能最終會在 Python 中完成,但我正在 JSL 中完成,因為到目前為止我在這方面更加熟練 - 只是在 Python 中學習 - 而且我已經有了運行 JSL 自動化作業的完整方案,具有用於將表推送到我們的Oracle 等的函數。
然而,雖然我認為整個項目本質上不會與JMP 相關,但我實際上發現,在JMP 表中包含圖像以及其他數據,可以通過所有常用的JMP 方式與它們進行交互,這非常有用- 排序、基於其他數據進行選擇數據列等. 這促使我做了一些其他與圖像相關的插件。還有待觀察的是,我的項目最終是否確實需要在實時交互式 JMP 會話期間調用 Python,或者它們可以是單獨的(一個交互式檢查 tf 模型結果的工具,只是從 Oracle 查詢結果,而不是直接調用Python 實時運行模型?)但我目前正在一起使用它們。
不管怎樣,這就是我現在使用 Python 時不屬於 JMP 的東西。 我正在嘗試學習更多Python,並擁有這方面的專家同事,我覺得可能會發現更多我可能想真正調用Python以將其功能與JMP結合起來的東西。
謝謝!
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑你好呀@哈德納,
很高興知道您更多地使用 Python 和 JMP。 如果您能分享您一直在做的事情,我們很想知道!
關於對虛擬環境的支持,我聽到了。 它確實在保持您的依賴項井井有條以及幫助您的同事重現您的環境以運行您的插件方面產生了很大的影響。
這就是為什麼我建立了一個小庫來幫助解決這個問題。 請檢查:
https://community.jmp.com/t5/JMP-Scripts/Anaconda-Environments-Integration/ta-p/221565
很多例子,在 14.3 和 15.1 中測試過。 但是,至少目前,僅限 Windows 且特定於 Anaconda。
請讓我知道這對你有沒有用!
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑你好!
只是回到這個線程作為OP說......
- 自從我發表最初的文章以來,我一直在更多地使用 Python,並且我所說的對我有用的方法仍然有效。:)
- 我很感謝為支持 Python 所做的努力,更重要的是現在我已經找到了可以使用它的具體用途。 謝謝!
- 像 FN 一樣,我發現調用 Python 的共享插件有問題。 我確實分享了很多插件。我現在僅將其用於我自己以及我運行的作業,然後與其他人共享結果,但不在由其他人運行的腳本中使用。我必須給出有關安裝 Python 和包的複雜說明,並擔心特定版本協同工作(我使用的 R 也出現同樣的問題,但在共享腳本中沒有)。但如果某個特定版本封裝在 JMP 中,就會限制我們可以用它做什麼。仍然認為支持虛擬環境可能會有所幫助,然後我可以指導和支持用戶按照我的規範為他們想要使用的特定工具設置安裝,並且不會干擾他們計算機上的任何其他 Python 活動。但不太確定什麼是最好的,也不太熱衷於解決用戶 Python 安裝的問題。因此,只是同意這並不理想,並指出我確實有興趣更多地利用這種能力。
謝謝!
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑我可以確認,在 Windows 10 和 JMP 14.2 中,它可以開箱即用,如果:
Anaconda Python 3.6* 64位已安裝 > https://repo.continuum.io/archive/Anaconda3-5.2.0-Windows-x86_64.exe ;
並且 PATH 選項已激活(無需管理員權限)

我的觀點更多的是關於使用可移植的 Python 版本部署插件的能力,因此用戶無需為 Anaconda 安裝、環境和版本控製而煩惱。
謝謝您的幫助。 期待在接下來的更新中看到出色的 Python 集成。
(*) 對於當前版本的 Anaconda,JMP 使用此配置會崩潰。
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑我不確定我是否理解你的問題。 為所有用戶安裝Python確實需要管理員訪問權限,但使用已安裝的Python不需要管理員訪問權限。 名為 Python 的 JMP 插件不需要管理員訪問權限即可安裝或運行。 是的,為所有用戶安裝的附加 Python 包將需要管理員訪問權限。 您應該能夠為每個用戶安裝站點本地軟件包,而不需要管理員安裝。 這是我一直想測試的東西,但有機會嘗試一下。 它可能需要您更新 sys.path 以添加站點本地包的位置。
至於 JMP 15 文檔,我知道其中的一些討論已經包含在內。 不幸的是,在截止日期之前,並不是所有內容都已成為文檔。 我們將努力通過維護版本來獲取其餘部分。
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑為所有用戶安裝還需要管理員權限,這在分發調用 Python 的加載項時並不方便。
JMP 15 的文檔是否包含此處討論的內容?
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑我們能夠在開發計算機上複製嘗試加載 Python 3.7 時 JMP 突然退出的情況。事實證明,我們 (JMP) 並不是唯一遇到 Python 3.7 和 Python 3.8 問題的人,尤其是在嵌入式情況下。我們從 Python 得到的錯誤是:
Python 致命錯誤:無法加載文件系統編解碼器
Jmp.exe 中 0x00007FFE84F9B64E (ucrtbase.dll) 處出現未處理的異常:請求致命程序退出。
這目前的解決方案是使用 Python 3.6.5 或更新的 3.6.x,或者您必須在 Windows 上安裝 Python 3.7.x 作為所有用戶的安裝,而不僅僅是您本地用戶,並且您必須選擇將PATH 中的Python。這直接與 Anaconda3 的安裝對話框相矛盾,警告不要將其放入路徑中。
我的開發機器在系統範圍內安裝的 3.7.1 上運行良好,並且是路徑上的默認 Python。在我同事的機器上,我們能夠複製 JMP 的突然中止,我們使用默認安裝選項安裝了 Python 3.7.1,這使得本地安裝不在路徑上。我們能夠通過設置環境變量 PYTHONHOME= 'anaconda3 目錄' 來阻止 JMP 退出,但即使在這裡,我們也無法讓它加載 numpy、scipi、pandas 或 sqlite3,甚至從控制台提示符也是如此。 在我的機器上一切都按預期工作。
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑有關 UsePythonVersion("3.6") 的更多信息,以防萬一它有用......
首次打開 JMP 時,此行不起作用...
Python Init(使用 Python 版本( "3.6" ), InitTrace( "True" ));
這是 InitTrace() 中日誌顯示的內容...
處理 OpPythonInit 運算符
啟動 JMP 到 Python 接口初始化
查詢HKEY_CURRENT_USER
讀取 hKey=0XFFFFFFFF80000001 kname=SOFTWARE\Python\PythonCore 位=64
找到 hKey=0xFFFFFFFF80000001 kname=SOFTWARE\Python\PythonCore 位=64
子項數=1
正在檢索子項#=0
子密鑰=3.6 長度=3
打開子項=3.6
打開鍵=3.6 子鍵=InstallPath
查詢值 key=3.6 subkey=InstallPath
查詢值 key=3.6 subkey=InstallPath value=C:\Users\12470\AppData\Local\Continuum\anaconda3
打開鍵=3.6 子鍵=PythonPath
查詢值 key=3.6 subkey=PythonPath
構建 Python DLL version=3.6 的路徑
在此系統上找不到 Python 安裝。 JMP Python 支持需要 Python 3.0 或更高版本。在訪問或評估 'Python Init' 時,Python Init/*###*/(Use Python Version( "3.6" ), InitTrace( "True" ))
如果我一遍又一遍地運行該行,這種情況會反復發生,但如果我在沒有 UsePythonVersion 的情況下執行此版本...
Python Init(InitTrace( "True" ));
它不僅可以工作,而且在該 JMP 會話打開時,帶有 UsePythonVersion("3.6") 參數的原始版本也開始工作。以下是在這種情況下該初始化跟踪中日誌顯示的內容。在這兩種情況下,顯示的路徑在我看來都是相同且正確的......
查詢HKEY_CURRENT_USER
讀取 hKey=0XFFFFFFFF80000001 kname=SOFTWARE\Python\PythonCore 位=64
找到 hKey=0xFFFFFFFF80000001 kname=SOFTWARE\Python\PythonCore 位=64
子項數=1
正在檢索子項#=0
子密鑰=3.6 長度=3
打開子項=3.6
打開鍵=3.6 子鍵=InstallPath
查詢值 key=3.6 subkey=InstallPath
查詢值 key=3.6 subkey=InstallPath value=C:\Users\12470\AppData\Local\Continuum\anaconda3
打開鍵=3.6 子鍵=PythonPath
查詢值 key=3.6 subkey=PythonPath
構建 Python DLL version=3.6 的路徑
Python DLL 路徑=C:\Users\12470\AppData\Local\Continuum\anaconda3\python36.dll
sys.pathentry.jstr:C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\Lib
sys.pathentry.jstr:C:\\Users\\12470\\AppData\\Local\\Continuum\\anaconda3\\DLLs
前:
/*********/
打印(_JMPsys.路徑)
/*********/
['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-包','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 ']
後:
/*********/
打印(_JMPsys.路徑)
/*********/
['', '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-包\\ win32 \\ lib','C:\\ Users \\ 12470 \\ AppData \\ Local \\ Continuum \\ anaconda3 \\ lib \\ site-packages \\ Pythonwin']
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑在職的!
這對我有用:
我使用適用於 Python 3.6 的存檔版本重新安裝了 Anaconda(以避免使用 3.6 的虛擬環境)。這是它的安裝位置,與之前相同,只是在 anaconda3 文件夾下多了 2 層虛擬環境):
C:\Users\12470\AppData\Local\Continuum\anaconda3\python36.dll
將環境變量 JMP_PYTHON_MODULE_PATH 設置為上述 python36.dll 的路徑
在 python init() 中沒有使用 UsePythonVersion("3.6") 參數,這會出現“找不到安裝”錯誤。
到目前為止,重新安裝後我所做的任何嘗試都沒有導致崩潰。誠然,沒有做太多事情,但似乎是虛擬環境的問題導致了崩潰(?)。到目前為止,我所做的有限測試在 14.3 和 15EA 中都有效。
謝謝!
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑@保羅·尼爾森& @傑夫·珀金森,
將 JMP 更新到 14.3,可以確認崩潰仍然繼續。 如果您需要任何進一步的信息,請告訴我。
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑您應該做的第一件事就是更新到 JMP 14 的新版本。 如果原始 14.0.0 能夠自動檢測正確的 Python 安裝,則可以正常工作。 但是,如果它無法正確定位 Python,那麼其他方法都無法正常工作。 連續更新 14.1、14.2… 中的工作使其他替代方案工作得更好,包括檢查環境變量、Python Init() 變量的使用。 它可能仍然無法在您的特定環境中工作,但這是第一個開始的地方。
您應該繼續與 JMP 的技術支持合作。 通過技術支持,所有 JMP 客戶都可以從我們在這個問題上的解決方案中受益。 目前,需要對代碼進行更多的挖掘,對代碼進行一些額外的檢測,並對代碼進行一些額外的防彈檢查,甚至可能需要編寫測試或診斷程序。
謝謝你的耐心。
保羅
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑值得一提的是,我的肯定都是 64 位的,而且我也遇到了崩潰的情況。我的唯一一次在 Python Init() 上不會崩潰是當我收到“找不到”消息時使用 Use Python Version() 參數。回复:JMP 14 Python 功能 - 有效嗎? 我很困惑@哈德納和@保羅·尼爾森,
保羅,我同意@哈德納的觀察。 可以要求您在明天或下週與我們一起進行 WebEx,無論哪種方式對您有效,您可以在其中查看我們的安裝並告訴我們為什麼它不起作用? 然後,您可以根據我們從會議中獲得的經驗教訓在社區上發布新的博客文章嗎? 這是你能做的事嗎?
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑值得一提的是,我的肯定都是 64 位的,而且我也遇到了崩潰的情況。我的唯一一次在 Python Init() 上不會崩潰是當我收到“找不到”消息時使用 Use Python Version() 參數。
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑我還會更新到 JMP 14 的最新版本。 JMP 14.x 的每個版本都完成了額外的工作,以改進查找 Python 並正確加載它。回复:JMP 14 Python 功能 - 有效嗎? 我很困惑我希望出現不匹配,你的問題就會突然得到解決。
我剛剛添加了額外的代碼來在我們嘗試加載 Python 時捕獲異常。 我還將考慮添加代碼,以便 Init Trace(“TRUE”) 寫入文件和日誌,以便我們可以獲得 Python 初始化的執行路徑的一些跟踪。 希望兩者都應該出現在下一個 JMP 15 EA 中。 (不確定下一份何時到期)。
保羅
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑@保羅·尼爾森,
的確。 我已檢查並驗證 JMP 和 Python 都是 64 位。


回复:JMP 14 Python 功能 - 有效嗎? 我很困惑您是否已驗證您的 Python 和 JMP 是否具有相同的位數? 32 位或 64 位。 缺少轉儲文件表明 JMP 在嘗試將 Python 作為共享庫加載時可能會出現故障。 如果 32 位 JMP / 64 位 Python 或 64 位 JMP / 32 位 Python 不匹配,則很可能會崩潰。
這是 JMP 在嘗試加載之前應該嘗試驗證的內容,也是我們應該嘗試捕獲的內容,但它可能仍然是無法恢復的情況。 但如果 JMP 能發出一些通知就更好了。
保羅
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑@保羅·尼爾森,
我正在與技術支持人員聯繫解決此問題 - SAS 7612709398。
我嘗試按照您的建議包含跟踪,但導致 Jmp 崩潰。 但是,我沒有看到生成的 .dmp 文件或 .jer 文件可以提供給技術支持。
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑支持 python 虛擬環境是我們正在考慮的事情。
反面是這個問題:
支持各種用戶安裝的 Python 版本是否太難運行並保持運行?
如果是這樣,解決方案可能是 JMP 提供並安裝的 Python 版本,該版本經過測試並且已知可以毫無問題地與 JMP 配合使用。 帶來的問題包括支持本地包的安裝以及擴展到 JMP 提供的 Python 環境中。
目前,我們更願意支持用戶安裝的 Python,但由於您已經體驗過各種實際情況,這可能會成為一項挑戰。
謝謝,
保羅
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑感謝這一切。
很確定您提到的問題是“JMP 目前不支持虛擬環境”。
安裝了最新的 Anaconda 和 python 3.7 後,發現我想使用需要 3.6 的 TensorFlow,我執行了此處描述的第一個選項...設置了 python3.6 環境。
https://docs.anaconda.com/anaconda/user-guide/faq/#anaconda-faq-35
鑑於我剛剛開始使用 python,並且對 3.7 沒有特殊需求 - 據我所知 - 我想我可能會卸載所有它並從另一個選項開始,例如帶有 3.6 的存檔 Anaconda 安裝包。 我看看情況如何。
但似乎這種“不同的東西需要不同的版本”很常見,就像 R 一樣 - 閱讀這種情況讓我深入研究那個看起來更複雜的選項,上面的鏈接並不是唯一的我看到使用虛擬環境的建議。所以想知道您是否可以更多地談論能夠告訴它在特定虛擬環境中運行的計劃。
InitTrace("TRUE") 的事情讓我的 JMP 崩潰了。但如果我的路徑沒有涉及虛擬環境,情況可能會有所不同。 將解決這個問題並打開技術支持案例以獲得進一步的幫助。謝謝!
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑我知道這對我們和你來說都一樣令人沮喪。 我們很難在我們的機器上複製這個問題,但我們確實知道有些客戶遇到了問題。 我們的大多數機器都是相似的,具有相同的企業形象...... 重要的一件事是,JMP 和 Python 的位數必須匹配。 由於 JMP 將 Python 作為共享庫加載,因此您無法將不同位數的 JMP 和 Python 混合使用。 如果您有 32 位 JMP,則必須指向 32 位 Python 3.6.1 或更高版本。 如果您有 64 位 JMP,則它必須是 64 位 Python 3.6.1 或更高版本。 我們發現,如果您的系統上只安裝了一次 Python,那麼成功的機會最大。 在 JMP 14.1 中,如果系統上有多個 Python,它甚至不會嘗試加載 Python。 JMP 目前不支持虛擬環境。
遇到問題的人請嘗試以下選項Python 初始化()
Python 初始化(初始化跟踪(“TRUE”) );
此選項可能沒有記錄(抱歉),將導致 JMP 轉儲有關它認為 Python 所在位置的大量詳細信息,包括它看到的路徑和它發現的 Python 註冊表項。 聯繫技術支持時請包含其輸出。
您可以確定在您的環境中運行以下 Python 腳本的位數
導入結構體
print( struct.calcsize("P") *8)
這應該根據運行的 Python 的位數打印 32 或 64。
注意:JMP 14 可以是 32 位或 64 位,具體取決於版本。 收縮包裝始終為 32 位
JMP 15 僅是 64 位。
我將嘗試最完整地記錄 Python Init() 和環境變量。
JMP 15 添加了 2 個正在尋找的新環境變量:
JMP_LIB_PYTHON_PATH - 這是共享庫的完整路徑。
JMP_PYTHON_MODULE_PATH - Python 的 sys.path 正如人們在 Windows 或 MacOS 環境變量中所期望的那樣。 在 Windows 上是分號分隔的列表,在 MacOS 上是冒號分隔的列表,而不是 JSL 列表。
在我的機器上,我在 C:\ProgramData\Anaconda3 中安裝了 Anaconda 3.7.1 64 位
那看起來像
JMP_LIB_PYTHON_PATH=C:\ProgramData\Anaconda3\python37.dll
dll 的路徑應該足夠......並且應該足以讓 Python Init() 可以在沒有參數的情況下使用。 指定 JMP_LIB_PYTHON_PATH 和 JMP_PYTHON_MODULE_PATH 後,即使使用多個 Python 解釋器,也應該完全指定 Python,並且 Python Init() 應該可以正常工作。
正如所討論的“Python sys path”一樣環境變量已被棄用,因為它不遵循 Windows 或 MacOS 上 shell 環境變量的正常約定。 它的變量名稱中包含空格,並且需要路徑組件 { , } 的 JSL 列表,而不是 UNIX 上預期的冒號分隔路徑或 Windows 上預期的分號分隔路徑。
我們嘗試更好地關注 Python 環境變量 PYTHONPATH 和 PYTHONHOME。 Python 文檔中對這些變量的描述是:
Python之家
更改標準 Python 庫的位置。 默認情況下,在以下位置搜索庫
prefix/lib/pythonversion 和 exec_prefix/lib/pythonversion,其中 prefix 和 exec_prefix 是
依賴於安裝的目錄,均默認為 /usr/local。
當 PYTHONHOME 設置為單個目錄時,其值會替換 prefix 和 exec_prefix。
要為它們指定不同的值,請將 PYTHONHOME 設置為 prefix:exec_prefix。
Python路徑
增加模塊文件的默認搜索路徑。 格式與shell的相同
PATH:一個或多個由 os.pathsep 分隔的目錄路徑名(例如 Unix 上的冒號或
Windows 上的分號)。 不存在的目錄將被默默忽略。
除了普通目錄之外,各個 PYTHONPATH 條目還可能引用 zip 文件
包含純Python模塊(源代碼或編譯形式)。 擴展模塊
無法從 zip 文件導入。
默認搜索路徑取決於安裝,但通常以 prefix/lib/pythonversion 開頭
(參見上面的 PYTHONHOME)。 它始終附加到 PYTHONPATH。
如上所述,將在 PYTHONPATH 前面的搜索路徑中插入一個附加目錄
在界面選項下。 搜索路徑可以在 Python 程序中作為變量 sys.path 進行操作。
JMP 15 查找環境變量的優先順序:
環境變量和 JSL 腳本的優先級順序從高到低
- 在 JSL 腳本中指定Python 初始化(小路(””) ,使用Python版本("") , Python 系統路徑( { "",... } ), ... )
- 在系統/Shell 環境變量中指定
- 自動定位
- 註冊表,在 PATH var 或系統 shell 上找到以運行 python 或 conda,...並且應該更喜歡本地安裝的 Python
如果兩者都存在,則在系統範圍內安裝 Python
JMP 14
首先查看環境變量“Python sys path”,它可以是 dll 的路徑,也可以是表示為 JSL 列表 {"","",... } 的完整 sys.path
PYTHONINSTALLPATH = 包含 python 安裝的頂級目錄的路徑,或包含 Python 共享庫的目錄。
這Python 初始化()陳述
參數:
Path() - dll 的完整路徑,或包含 dll 的 Python 頂級目錄。
使用 Python Version() - 主要.次要 Python 版本的帶引號的字符串。 當發現多個 Python 時,它本身就足夠了。
Python sys path() - 與 Python sys.path 值相對應的帶引號的字符串路徑的 JSL 列表。 指定這 3 個應該完全指定 Python 安裝,並且應該覆蓋任何環境或註冊表值。
Init Trace("TRUE") - 在 JMP 的 Python 初始化期間調試輸出到 JMP 的日誌
調試打印語句(“TRUE”); - 直接將Python語句打印到JMP日誌中
調試打印輸出(“TRUE”); - 直接將Python輸出打印到JMP日誌
JMP 14 Python Init() 還可以選擇接受以下內容: 僅使用一個或其他,並與 JMP 安裝的位數相匹配。 32 位 JMP 無法使用 64 位 Python,64 位 JMP 無法使用 32 位 Python。
使用 32 位 Python(“TRUE”)
使用 64 位 Python(“TRUE”)
JMP 15 刪除了上述可選參數,因為 JMP 15 是 64 位並且可以僅有的使用 64 位 Python。 所有參數為Python 初始化()是可選的,如果註冊表中的自動檢測或環境變量指向有效的Python,則無需進一步應該你需要的Python 初始化()
請隨時聯繫 JMP 的技術支持,我們希望 JMP 中的 Python 功能有用並增強 JMP 提供的功能。 我們希望解決這些問題,使其正常運轉。
保羅
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑下列的...
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑謝謝!會做。 我只能補充一點,我也嘗試將 dll 的 path() 放入 python init() 中,這也會崩潰,而不是至少抱怨它找不到它。 總的來說,我可能也需要技術支持幫助,但希望有一些對其他人也有用的澄清。回复:JMP 14 Python 功能 - 有效嗎? 我很困惑我可以確認,儘管在 C:\ 中安裝了我的 anaconda 發行版並設置了環境變量,如郵政,我無法讓它工作。 它仍然使 JMP 崩潰。 如果我得到技術支持的答复,我會更新您,如果您弄清楚了,請這樣做
回复:JMP 14 Python 功能 - 有效嗎? 我很困惑@哈德納,
我和你在同一條船上。 我已經嘗試為 Python 配置 JMP 大約兩週了。 我已經成功地與 JMP 的 SAS 和 R 集成,但是 Python 集成一直很不清楚,至少可以說是冗長的。 我很失望地知道 JMP 15 早期採用者也沒有任何改進來修復此集成。 我也密切關注這個郵政並希望它能在 JMP 15 中得到修復,並且集成將變得更加順暢。
我目前正在使用 JMP 14 和 Python 3.7.1 。 有人建議我直接在 C:/ 根目錄下安裝 Python/Anaconda 發行版,我準備嘗試一下。 如果可行,我會在此處提醒您哪些可行並進行更新。