我试图运行从github:https://github.com/augustoqm/MCLRE下载的一些开源代码
代码是从我的mac运行的。当它到达subprocess.Popen()函数时,会引发"OSError: Errno 8 Exec格式错误“。
守则:
启动新流程
mrbpr_cmd_args =‘s -m %s -d %s -u %s -n %s -k %d -s %d -h %d -l %f -f %d -i %d -e“%s -r”%s -M %s’% (mrbpr_bin_path,meta_file,-o,,,output_dir,rank_size,\ save_model,算法,learn_rate,num_fact,num_iter,relation_weights,regularization_per_entity,\ regularization_per_entity,model_name)
proc = subprocess.Popen(shlex.split(mrbpr_cmd_args),shell=True)
当我打印"mrbpr_cmd_args“变量时,结果是:
/Users/nastia/Desktop/MCLRE-master/src/recommender_execution/mrbpr/mrbpr.bin -m /Users/nastia/Desktop/MCLRE-master/data/experiments/recsys-15/bpr-net_meetup.meta -d /Users/nastia/Desktop/MCLRE-master/data/partitioned_data/san_jose/partition_12/mrbpr/user-event-rsvp_train.tsv,/Users/nastia/Desktop/MCLRE-master/data/partitioned_data/san_jose/partition_12/mrbpr/user-user-same-group_train.tsv,/Users/nastia/Desktop/MCLRE-master/data/partitioned_data/san_jose/partition_12/mrbpr/user-user-same-event_train.tsv -u /Users/nastia/Desktop/MCLRE-master/data/partitioned_data/san_jose/partition_12/mrbpr/users_test.tsv -n /Users/nastia/Desktop/MCLRE-master/data/partitioned_data/san_jose/partition_12/mrbpr/event-candidates_test.tsv -o /User/nastia/Desktop/MCLRE-master/data/experiments/recsys-15/san_jose/recommendations/partition_12/mrbpr -k 100 -s 0 -h 0 -l 0.100000 -f 200 -i 600 -a 0.25,0.15,0.6 -e“-r”-M BPR-NET_200-0.1-600-0.25:0.15:0.6
谁能告诉我这个args怎么了?
发布于 2018-07-22 21:27:24
您所链接的GitHub回购的自述:
需求
而且,如果您查看在回购室里的那条路,mrbpr.bin是一个Linux可执行二进制文件。你不能在Mac上运行。
如果他们自己提供了构建可执行文件的源代码,或者提供了指向何处的链接,那么您可能会构建一个Mac版本。但是,如果做不到这一点,你就什么也做不了。
最好的选择可能是运行Linux容器、虚拟机或用户模式安装(无论是在Mac上还是在一些免费的云主机上),在其中安装Python和所有其他需求,然后以这种方式运行代码。
如果您想知道为什么会出现这样的错误:
OSError: [Errno 8] Exec format error有多种不同的可执行格式: a.out、ELF、mach-O、COFF等。大多数linux可执行文件都是ELF格式。macOS的加载程序只知道mach-O和a.out。所以,您的操作系统甚至不知道文件是什么,只是它不知道如何处理。但是,即使你克服了这一点,linux和达尔文的系统是不同的,glibc和BSD libc是不同的,所以无论如何它都会快速地分割错误。
https://stackoverflow.com/questions/51469341
复制相似问题