Qu'est-ce qui a inspiré cette demande de liste de souhaits ?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.
Quelle amélioration souhaiteriez-vous voir ?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.
Pourquoi cette idée est-elle importante ? Elle est extrêmement précieuse pour les utilisateurs et les administrateurs informatiques qui ont besoin d'un contrôle strict sur leurs environnements Python. Elle permet aux utilisateurs d'acheminer des packages Python potentiellement volumineux vers des lecteurs spécifiques ou des répertoires personnalisés sans perturber l'environnement isolé de JMP. En définitive, elle aligne l'intégration Python de JMP sur les comportements standard de Python, réduisant ainsi les difficultés et la confusion pour les développeurs qui cherchent à gérer efficacement leurs packages.
@guillaumebugnon - Merci d'avoir soumis ce souhait.
@guillamebugnon - Je souhaite vous transmettre quelques informations d'un développeur concernant ce souhait et la prochaine version 20 de JMP :
Dans JMP version 20, Python s'exécute désormais en mode isolé afin de garantir un comportement cohérent quel que soit l'environnement de l'utilisateur. De ce fait, l'interpréteur Python intégré ignore désormais toutes les variables d'environnement PYTHON*.
JMP version 20 EA 1 et ultérieures prennent en charge les environnements virtuels Python (venv). Dans JMP > Préférences > Python, un panneau permet de créer et de sélectionner des environnements virtuels comme alternatives à l'environnement par défaut du package du site. L'environnement virtuel doit être créé par JMP et pointer vers les bibliothèques partagées Python fournies par JMP, et non vers celles d'une installation Python externe. Il peut être placé n'importe où sur le système de fichiers ou un lecteur partagé. La boîte de dialogue de sélection de l'environnement virtuel permet également de choisir un répertoire, et là encore, l'environnement virtuel peut être placé n'importe où sur le système de fichiers.
Une fois créé, l'environnement virtuel (venv) peut être utilisé depuis le terminal comme n'importe quel environnement virtuel Python. Cela inclut l'activation de l'environnement virtuel depuis la ligne de commande et l'utilisation directe de pip au sein de cet environnement, sans passer par jpip depuis JMP. Après sa création par JMP, des scripts externes peuvent initialiser l'environnement virtuel ou l'utiliser. Cependant, l' importation de packages JMP n'est possible que depuis une instance de JMP en cours d'exécution.
Je vous encourage à télécharger la version actuelle de JMP EA et à l'essayer.
Salut @scott_allen ,
Je vais jeter un œil à JMP EA et à venv.
Merci