Question Cyril Grosjean · Déc 4, 2023

Commande iop invalide sur Windows

Bonjour,

Je suis toujours en train de préparer le terrain pour inclure la librairie de Guillaume Rongier pour utiliser InterSystems entièrement via Python. Cependant notre environnement local tourne sur Docker avec l'OS linux, jusque là nous n'avons aucun problème avec la librairie. Le problème arrive lorsque l'on passe sur la pré-production où iris est installé directement sur Windows. J'installe les librairies requises avec le package pip et un fichier requirements.txt contenant ceci:
 

dataclass_csv==1.4.0
geopy==2.2.0
chronyk==1.0.1
requests==2.28.1
psycopg2-binary==2.9.3
sqlalchemy==2.0.0
sqlalchemy-iris==0.10.5
SQLAlchemy-Continuum
alembic==1.11.1
https://github.com/intersystems-community/intersystems-irispython/releases/download/3.7.1/intersystems_iris-3.7.1-py3-none-any.whl
iris @ https://github.com/grongierisc/iris-embedded-python-wrapper/releases/download/v0.0.5/iris-0.0.5-py3-none-any.whl
iris-pex-embedded-python>=2.0.0
irissqlcli
fastapi
pydantic
pandas
zeep

Cependant lorsque j'utilise la commande iop pour faire un init et après migrer un fichier settings.py:

iop : Le terme «iop» n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès est correct.

J'ai essayé en passant par le commande python -m iop, mais c'est pareil, la commande iop est introuvable.

La librairie est pourtant installée avec pip c'est certain:

python -m grongier
C:\Program Files\Python39\python.exe: No module named grongier.__main__; 'grongier' is a package and cannot be directly executed

Merci d'avance pour votre aide !

Product version: IRIS 2023.1
$ZV: IRIS for Windows (x86-64) 2023.1.2 (Build 450U) Mon Oct 16 2023 10:17:46 EDT [Health:3.5.0]

Comments

Guillaume Rongier · Déc 4, 2023

Salut,

Peux-tu essayer cette commande :

python -m grongier.pex._cli

Je vais regarder en parallèle, le problème avec windows (pas facile, j'ai pas de VM windows à disposition :()

0
Cyril Grosjean  Déc 4, 2023 to Guillaume Rongier
PS E:\InterSystems> python -m grongier.pex._cli
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\runpy.py", line 188, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "C:\Program Files\Python39\lib\runpy.py", line 111, in _get_module_details
    __import__(pkg_name)
  File "C:\Users\Cyril.Grosjean\AppData\Roaming\Python\Python39\site-packages\grongier\pex\__init__.py", line 1, in <module>
    from grongier.pex._business_service import _BusinessService
  File "C:\Users\Cyril.Grosjean\AppData\Roaming\Python\Python39\site-packages\grongier\pex\_business_service.py", line 2, in <module>
    from grongier.pex._business_host import _BusinessHost
  File "C:\Users\Cyril.Grosjean\AppData\Roaming\Python\Python39\site-packages\grongier\pex\_business_host.py", line 9, in <module>
    import iris
  File "C:\Users\Cyril.Grosjean\AppData\Roaming\Python\Python39\site-packages\iris\__init__.py", line 10, in <module>
    raise Exception("""Cannot find InterSystems IRIS installation directory
Exception: Cannot find InterSystems IRIS installation directory
    Please set IRISINSTALLDIR environment variable to the InterSystems IRIS installation directory

Faut-il définir la variable d'environnement sur Windows ? Sur Linux je n'ai pas besoin.

0
Guillaume Rongier  Déc 4, 2023 to Cyril Grosjean

oui, example :

C:\InterSystems\IRIS\bin>set IRISNAMESPACE = USER
0
Cyril Grosjean  Déc 4, 2023 to Guillaume Rongier

Je pensais plutôt à IRISINSTALLDIR au vu de l'erreur malgré qu'il soit installé directement sur la machine.

J'avais déjà défini IRISNAMESPACE.

0
Cyril Grosjean  Déc 4, 2023 to Cyril Grosjean

J'ai demandé à Jean-Charles qui a des droits d'accès en administrateur à la machine, il a défini manuellement les variables d'environnement et la commande marche.

Quid par contre pour la commande iop, ce n'est pas dérangeant mais il faudra qu'on y pense dans l'exécution des commandes.

0