我有2个安装:一个在我的笔记本电脑上,一个SLURM安装。我想在我的python函数中设置相对路径,所以我可以通过git并运行它。
问题:我的jar文件是在
我的笔记本电脑上的/Users/me/libs/jena/lib/*
或~/libs/jena/lib/*
以及服务器上的/home/user/me/libs/jena/lib/*
或~/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)
不起作用。
感谢您的帮助
答案 0 :(得分:0)
首先,您可以尝试删除路径中的*
;它应该只是../../libs/jena/lib/
其次,您可以在笔记本电脑和群集上的CLASSPATH
文件中将.bash_profile
变量设置为正确的值。
export CLASSPATH=~/libs/jena/lib/
这样做是因为当~
文件来源时(登录时),Bash会将.bash_profile
替换为你的家。这在Python脚本中不起作用,因为Bash不参与(仅限Bash)将~
理解为用户的主目录。)
使用环境变量还可以让您在笔记本电脑和群集上拥有不同的库路径。例如,如果您想尝试其中一个库的较新版本。