Py2app找不到工作目录

时间:2019-02-02 10:50:36

标签: python scrapy

当我运行py2app时,我一直收到此错误。它在我做python app.py并作为终端运行时有效,但是当其构建为py2app时不起作用

enter image description here

这是一个令人毛骨悚然的项目。

app.py

import os
from subprocess import call


def main():
    cw = os.getcwd()
    path = '/scrape'
    cwd = cw + os.path.join(path)
    ourPath = ['scrapy','crawl', 'yellow']
    name = "yellow"
    call(["scrapy", "crawl", "{0}".format(name)], cwd=cwd)

if __name__ == "__main__" :
    main()

enter image description here

1 个答案:

答案 0 :(得分:1)

scrape软件包未包含在/Contents/Resources文件夹中。 由于app.py不包含scrape包中的任何名称,因此在构建应用程序捆绑包时构造的模块图不包含它。

可以使用传递给--package的{​​{1}}选项来更新构建过程以包括scrape软件包。 [1]
但是提供py2app选项时,--package包将被复制到 scrapy [2]
这意味着您必须解析要在此新路径中运行的subprocess命令的目录。

一种更好的解决方法是直接通过Crawler API运行刮板,而不是在可行的情况下将其作为子流程命令。 [3] 通过这种方法,py2app构建了模块图以包含来自Contents/Resources/lib/python2.X/包的必要代码。