そのため、networkx グラフを生成して .graphml としてエクスポートする python スクリプトがあり、ユーザー側で何も作業せずにネットワークがロードされた状態でサイトスケープを開くこともできるようにスクリプトが必要です。理解します:
cytoscape.bat -N C:\Somepath\with\a\networkx.graphml
私がそれを使用するとき、それはうまくいきます。同様に:
cd "C:\Program Files\Cytoscape_v3.0.0"
cytoscape.bat
ただし、どちらも取得できないか、適切に実行できないようですos.system
。subprocess
現在の構成は次のとおりです。
p = subprocess.Popen("cytoscape.bat", cwd="C:/Program Files/Cytoscape_v3.0.0")
stdout, stderr = p.communicate()
しかし、ファイルが見つからないという例外がスローされます。
私は他のstackoverflowの投稿と.batsの実行とcmd操作に関するPythonドキュメントを読んでおり、基本を機能させることができます。ただし、これはやや複雑なようで、どこが間違っているのかわかりません。
リクエストに応じて、例外:
ファイルが見つからず、間違ったパスの例外:
Traceback (most recent call last):
File "CytoScapeExporter.py", line 219, in <module>
p = subprocess.Popen("cytoscape.bat", cwd="\"C:/Program Files/Cytoscape_v3.0
.0\"")
File "C:\Python27\lib\subprocess.py", line 679, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 896, in _execute_child
startupinfo)
WindowsError: [Error 267] The directory name is invalid
Traceback (most recent call last):
File "CytoScapeExporter.py", line 219, in <module>
p = subprocess.Popen("cytoscape.bat", cwd="C:/Program Files/Cytoscape_v3.0.0
")
File "C:\Python27\lib\subprocess.py", line 679, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 896, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
少し異なる JVM エラーで、次のコードによって生成されます。
os.system("\"C:/Program Files/Cytoscape_v3.0.0/cytoscape.bat\"")
Error: missing `server' JVM at `C:\Program Files (x86)\Java\jre7\bin\server\jvm.
dll'.
Please install or use the JRE or JDK that contains these missing components.
C:\Program Files\Cytoscape_v3.0.0