このウィッシュリストのリクエストのきっかけは何だったのでしょうか?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.
このアイデアが重要な理由は何でしょうか?これは、Python環境を厳密に制御する必要のあるユーザーやIT管理者にとって非常に価値のあるものです。ユーザーは、JMPの隔離された環境を損なうことなく、潜在的に大きなPythonパッケージを特定のドライブやカスタムディレクトリにルーティングできます。最終的に、JMPのPython統合を標準的なPythonの動作に合わせることで、パッケージを効率的に管理しようとする開発者の負担や混乱を軽減します。
@guillaumebugnon - リクエストを送信していただきありがとうございます。
@guillamebugnon - この要望と今後のJMPバージョン20に関して、開発者から得た情報をお伝えしたいと思います。
JMPバージョン20では、様々なユーザー環境において一貫した動作を保証するため、Pythonが分離モードで実行されるようになりました。これにより、組み込みPythonはすべてのPYTHON*環境変数を無視するようになります。
JMP バージョン 20 EA 1 以降では、Python venv 仮想環境がサポートされています。JMP->設定->Python には、デフォルトのサイトパッケージ環境に代わる仮想環境を作成および選択するためのオプションが表示されます。venv は JMP によって作成される必要があります。仮想環境は、外部の Python インストールのライブラリではなく、JMP が提供する Python 共有ライブラリを指す必要があります。作成された仮想環境は、ファイルシステムまたは共有ドライブの任意の場所に配置できます。仮想環境の選択は、ディレクトリ選択式のファイルダイアログで行われ、これもファイルシステムの任意の場所に配置できます。
作成されたvenvは、他のPython venvと同様にターミナルから利用できます。コマンドラインからvenvをアクティブ化したり、JMP内からjpipを使用する代わりにvenv環境内で直接pipを使用したりできます。JMPによって作成されたvenvには、外部スクリプトからデータを投入したり、環境を利用したりできます。ただし、 jmpパッケージのインポートは、実行中のJMP内からのみ可能です。
ぜひ最新版のJMP EAをダウンロードして試してみてください。