我有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)
不起作用。
感谢您的帮助
首先,您可以尝试在路径中删除*
;它应该只是../../libs/jena/lib/
第二,您可以将CLASSPATH
变量设置为笔记本电脑和群集上的.bash_profile
文件中的正确值。
export CLASSPATH=~/libs/jena/lib/
这将起作用,因为当.bash_profile
文件得出(登录时)时,BASH将用您的房屋代替~
。这在Python脚本中不起作用,因为然后不参与BASH(只有BASH才能将~
理解为用户的主目录。)
使用环境变量还可以使您在笔记本电脑和群集上具有不同的库路径。例如,如果您想尝试其中一个库的较新版本。