为子进程设置相对javaclasspath

2024-09-28 18:47:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个安装:一个在我的笔记本电脑和一个SLURM安装。我想在我的python函数中设置相对路径,这样我就可以通过git调用并运行它。在

问题:我的jar文件在
/Users/me/libs/jena/lib/*~/libs/jena/lib/*在我的笔记本电脑上,在/home/user/me/libs/jena/lib/*或{}中。在

我知道并尝试了os.path.join(os.path.dirname(__file__),'../../libs/jena/lib/*'),也直接设置~/path/不起作用。在

让我困惑的是运行一个带有os.path.join的shebang脚本很好,但是设置一个类路径如下:

cmd = ["java", "-cp", os.path.join(os.path.dirname(__file__),'../../libs/jena/lib/*')"+":.", java_file, args]
proc = Popen(cmd, stdout=PIPE, stderr=PIPE)

不起作用。在

谢谢你的帮助


Tags: path函数cmdoslibjavaslurmlibs
1条回答
网友
1楼 · 发布于 2024-09-28 18:47:31

首先,可以尝试删除路径中的*;它应该是../../libs/jena/lib/

其次,您可以在笔记本电脑和集群上的.bash_profile文件中将CLASSPATH变量设置为正确的值。在

export CLASSPATH=~/libs/jena/lib/

这是可行的,因为当.bash_profile文件的来源(登录时)Bash将用您的home替换~。这在Python脚本中不起作用,因为Bash不涉及(只有Bash将~理解为用户的主目录)

使用环境变量还可以使您在笔记本电脑和集群上有不同的库路径。例如,如果您想尝试某个库的更新版本。在

相关问题 更多 >