浏览代码

Adding venv support

Andrej Studen 3 年之前
父节点
当前提交
09a887eb6c
共有 1 个文件被更改,包括 14 次插入7 次删除
  1. 14 7
      websocketServer.py

+ 14 - 7
websocketServer.py

@@ -2,9 +2,10 @@ import asyncio
 import websockets
 import sys
 import json
-import importlib
-import pathlib
+#import importlib
+#import pathlib
 import os
+import subprocess
 
 async def hello(websocket):
     #websocket is a WebSocketServerProtocol
@@ -46,14 +47,20 @@ def run(message):
     with open(fsetup) as f:
         setup=json.load(f)
 
+    parts=scriptFile.split('/')
+    scriptDir=parts[-2]#one before last, last is the script name
     scriptFile=scriptFile.replace('_softwareSrc_',setup['paths']['softwareSrc'])
+    venv=setup['venv'][scriptDir]
+    pCall=os.path.join(venv,'bin','python')
+    argsCall=[pCall,scriptFile,args[0],args[2]]
+    subprocess.run(argsCall)
         
-    spath=pathlib.Path(scriptFile)
-    print('script: {} [{}]{}'.format(scriptFile,spath.parent,spath.stem))
-    sys.path.append(str(spath.parent))
+    #spath=pathlib.Path(scriptFile)
+    #print('script: {} [{}]{}'.format(scriptFile,spath.parent,spath.stem))
+    #sys.path.append(str(spath.parent))
     #print(sys.path)
-    module=importlib.import_module(spath.stem)
-    module.main(args[0],args[2])
+    #module=importlib.import_module(spath.stem)
+    #module.main(args[0],args[2])
 	
 
 if __name__ == "__main__":