JSL 환경에 로컬 Python 모듈을 설치하고 사용하는 모범 사례가 있나요?
Install Python Packages using JSL 에서 설명서를 읽었는데, 표준 라이브러리에 맞춰져 있는 것 같습니다. JMP가 사용자 정의 모듈을 찾는 기본 위치가 있나요?
JSL을 사용하여 사용자 정의 모듈 업데이트를 관리할 수 있는 방법이 있나요?
사용자 정의 모듈, 패키지 또는 라이브러리를 사용하는 데에는 차이점이 있나요?
JMP를 사용하지 않을 때 어떻게 관리하시나요? JMP를 사용할 때 비슷한 것을 활용할 수 있을 가능성이 큽니다.
JMP는 .jsl 또는 .py 스크립트가 시작하는 디렉토리와 같은 디렉토리에 있으면 '찾아낼' 뿐입니다. JMP 18.0에는 시작 스크립트가 .jsl인 경우 .py 임포트를 찾지 못하는 문제가 있습니다.
18.1+에서는 .jsl 또는 .py 스크립트 모두에서 잘 작동해야 합니다.
다른 방법은 pyproject.toml 파일을 만들고, 스크립트를 파일과 같은 이름의 디렉토리와 적절한 pyproject.toml 파일에 넣는 것입니다. 이렇게 하면 jpip가 JMP site-packages/ 위치에 설치할 수 있는 설치 가능한 패키지가 됩니다. Python.org의 문서나 설치 가능한 Python 패키지를 만드는 방법에 대한 다른 많은 튜토리얼을 참조하세요. 예: https://til.simonwillison.net/python/pyproject
아래 코드는 빠르고 지저분하며 아마도 파이썬 모범 사례를 따르지 않을 것입니다. 보통 __init__.py 파일과 패키지 디렉토리와 일치하는 파일 대신 __main__.py 또는 main.py가 있다고 생각합니다... 하지만 toml 파일을 사용하면 아래에 표시된 종속성을 포함한 많은 것을 지정할 수 있습니다.
dt2pandas/
dt2pandas.py
pyproject.toml
pyproject.toml
[프로젝트]
이름 = "dt2pandas"
설명 = "jmp.DataTable에서 pandas.DataFrame 예제"
저자 = [
{ 이름 = "폴 R. 넬슨", 이메일 = "paul.nelson@jmp.com" }
]
버전 = "0.1"
종속성 = [ "pandas" ]
어느 시점에서 당신은 할 수 있습니다
jmputils.jpip('install', '-e _my_path_to/ dt2pandas')