Py2app не находит рабочий каталог - PullRequest
0 голосов
/ 02 февраля 2019

Я получаю эту ошибку при запуске моего py2app.Он работает, когда я python app.py и когда он работает как терминал, однако он не работает, когда он построен как py2app

enter image description here

ЭтоScrapy Project.

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 голосов
/ 02 февраля 2019

Пакет scrape не входит в папку /Contents/Resources.Поскольку app.py не содержит имен из пакета scrape, график модуля, который создается при сборке пакета приложения, не состоит из него.

Процедура сборки может быть обновлена, чтобы включить пакет scrapeиспользуя параметр --package, переданный py2app [1]
Однако, если указана опция --package, пакет scrapy будет скопирован в Contents/Resources/lib/python2.X/. [2]
Это означает, что вам придется разрешить каталог команды подпроцесса для запуска по этому новому пути.

Лучший способдля этого нужно запустить скребок напрямую через API Crawler, а не как команду подпроцесса, где это возможно. [3] При таком подходе py2app создает график модуля для включения необходимого кода из пакета scrape.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...