이 위시리스트 요청은 무엇에서 영감을 받았나요?I need to install Python packages in a custom directory on my machine (e.g., C:\lib_jmp_python) using the standard Windows PYTHONUSERBASE environment variable. Currently, if I run jmputils.jpip('install', 'package_name'), my system variable is completely ignored. The jmputils.py script hardcodes the installation paths by forcing its own site.USER_BASE and overwriting the subprocess environment. This makes it impossible to route packages to a custom local folder using standard Python OS variables; everything is forced into the default JMP AppData/ProgramData directories.
어떤 개선점을 보고 싶으신가요?I would like jmputils.py to respect the system's PYTHONUSERBASE variable if it is defined by the user, and only fall back to the default JMP paths if it is not set. Specifically, in the jpip() function, a simple conditional check could be added:
if 'PYTHONUSERBASE' in os.environ:
site.USER_BASE = os.environ['PYTHONUSERBASE']
elif site.USER_BASE is None:
site.getuserbase()
The exact same logic should be applied to the create_jpip() function when generating the jpip.bat script, replacing the currently hardcoded set PYTHONUSERBASE=%APPDATA%\JMP\JMP\Python with a dynamic check.
이 아이디어가 중요한 이유는 무엇일까요? 파이썬 환경을 엄격하게 제어해야 하는 사용자 및 IT 관리자에게 매우 유용한 기능입니다. 사용자는 JMP의 격리된 환경을 유지하면서 용량이 큰 파이썬 패키지를 특정 드라이브나 사용자 지정 디렉터리에 저장할 수 있습니다. 궁극적으로 이는 JMP의 파이썬 통합을 표준 파이썬 동작 방식과 일치시켜, 패키지를 효율적으로 관리하려는 개발자의 불편함과 혼란을 줄여줍니다.
@guillaumebugnon - 소원을 제출해 주셔서 감사합니다.
@guillamebugnon님 - 이번 요청과 곧 출시될 JMP 버전 20에 관해 개발자로부터 받은 정보를 전달해 드리고 싶습니다.
JMP 버전 20의 Python은 다양한 사용자 환경에서 일관된 동작을 보장하기 위해 격리 모드로 실행됩니다. 이로 인해 내장된 Python은 모든 PYTHON* 환경 변수를 무시하게 됩니다.
JMP 버전 20 EA 1 이상에서는 Python venv 가상 환경을 지원합니다. JMP > 환경설정 > Python에서 가상 환경을 생성하거나, 생성된 가상 환경을 '기본' 사이트 패키지 환경 대신 사용할 수 있는 옵션을 제공하는 창을 찾을 수 있습니다. 가상 환경은 JMP에서 생성해야 합니다. 또한, 생성된 가상 환경은 외부 Python 설치 환경이 아닌 JMP에서 제공하는 Python 공유 라이브러리를 가리켜야 합니다. 생성된 가상 환경은 파일 시스템이나 공유 드라이브의 어느 위치에나 생성할 수 있습니다. 가상 환경 선택 대화 상자 역시 파일 시스템의 어느 위치에나 설치 가능합니다.
일단 생성되면, 가상 환경(venv)은 일반적인 파이썬 가상 환경처럼 터미널에서 사용할 수 있습니다. 명령줄에서 가상 환경을 활성화하거나, JMP 내에서 jpip를 사용하는 대신 가상 환경 내에서 pip를 직접 사용할 수도 있습니다. JMP로 가상 환경을 생성한 후에는 외부 스크립트에서 해당 환경을 채우거나 활용할 수 있습니다. 단, JMP 패키지를 가져오는 기능은 실행 중인 JMP에서만 사용할 수 있습니다.
최신 JMP EA 버전을 다운로드하여 사용해 보시길 권장합니다.