AppEngine - IOError: [Errno 2] Нет такого файла или каталога: - PullRequest
0 голосов
/ 20 января 2019

Я создаю веб-приложение с AppEngine , которое использует Spotify и Reddit API, и оно работает локально с dev_appserver.py, но когда я загрузить мой проект и попробовать то же самое на веб-сайте, я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/350d926c06a7e859/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1535, in __call__
    rv = self.handle_exception(request, response, e)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/350d926c06a7e859/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1529, in __call__
...
...

  File "/base/data/home/apps/s~kabloombox-219016/20190116t005128.415435515961651480/main.py", line 274, in post
    scan_subreddit(language, access_token)
  File "/base/data/home/apps/s~kabloombox-219016/20190116t005128.415435515961651480/main.py", line 190, in scan_subreddit
    reddit = praw.Reddit(client_id=CLIENT_ID_REDDIT, client_secret=CLIENT_SECRET_REDDIT, user_agent=USER_AGENT)
...
...

  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/350d926c06a7e859/python27/python27_dist/lib/python2.7/platform.py", line 165, in libc_ver
    f = open(executable,'rb')
IOError: [Errno 2] No such file or directory: '/base/alloc/tmpfs/dynamic_runtimes/python27g/350d926c06a7e859/python27/python27_dist/python'

Я получаю эту ошибку после отправки формы, которая затем должна запускать веб-скребок, а вместо этого просто мгновенно выдавать ошибки. Я нашел много людей с такой же ошибкой No such file or directory в их собственных файлах, которые они сделали, и им просто нужно было изменить app.yaml, но /base/alloc/tmpfs/dynamic_runtimes/python27g/350d926c06a7e859/python27/python27_dist/python - это какой-то случайный file/folder, и я абсолютно не представляю, что я должен сделать из этого.

1 Ответ

0 голосов
/ 27 января 2019

Вы можете изменить инициализацию praw, чтобы она не вызывала платформу.1005 *:

import platform

def patch(module):
    def decorate(func):
        setattr(module, func.func_name, func)
        return func
    return decorate

@patch(platform)
def platform():
    return 'AppEngine'
...