首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSError:[Errno 8]运行subprocess.Popen时Exec格式错误

OSError:[Errno 8]运行subprocess.Popen时Exec格式错误
EN

Stack Overflow用户
提问于 2018-07-22 21:19:12
回答 1查看 2K关注 0票数 1

我试图运行从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怎么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-22 21:27:24

您所链接的GitHub回购的自述:

需求

  • Linux:所有的实验都是在基于Linux的机器、Ubuntu发行版,更具体地说,是在Ubuntu发行版上执行的。

而且,如果您查看在回购室里的那条路mrbpr.bin是一个Linux可执行二进制文件。你不能在Mac上运行。

如果他们自己提供了构建可执行文件的源代码,或者提供了指向何处的链接,那么您可能会构建一个Mac版本。但是,如果做不到这一点,你就什么也做不了。

最好的选择可能是运行Linux容器、虚拟机或用户模式安装(无论是在Mac上还是在一些免费的云主机上),在其中安装Python和所有其他需求,然后以这种方式运行代码。

如果您想知道为什么会出现这样的错误:

代码语言:javascript
复制
OSError: [Errno 8] Exec format error

有多种不同的可执行格式: a.out、ELF、mach-O、COFF等。大多数linux可执行文件都是ELF格式。macOS的加载程序只知道mach-O和a.out。所以,您的操作系统甚至不知道文件是什么,只是它不知道如何处理。但是,即使你克服了这一点,linux和达尔文的系统是不同的,glibc和BSD libc是不同的,所以无论如何它都会快速地分割错误。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51469341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档