{"action":"created","issue":{"url":"https://api.github.com/repos/jaimeMF/youtube-dl-api-server/issues/30","labels_url":"https://api.github.com/repos/jaimeMF/youtube-dl-api-server/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/jaimeMF/youtube-dl-api-server/issues/30/comments","events_url":"https://api.github.com/repos/jaimeMF/youtube-dl-api-server/issues/30/events","html_url":"https://github.com/jaimeMF/youtube-dl-api-server/issues/30","id":73842477,"number":30,"title":"GAE error: AttributeError: 'module' object has no attribute 'Popen'","user":{"login":"ping","id":104607,"avatar_url":"https://avatars.githubusercontent.com/u/104607?v=3","gravatar_id":"","url":"https://api.github.com/users/ping","html_url":"https://github.com/ping","followers_url":"https://api.github.com/users/ping/followers","following_url":"https://api.github.com/users/ping/following{/other_user}","gists_url":"https://api.github.com/users/ping/gists{/gist_id}","starred_url":"https://api.github.com/users/ping/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ping/subscriptions","organizations_url":"https://api.github.com/users/ping/orgs","repos_url":"https://api.github.com/users/ping/repos","events_url":"https://api.github.com/users/ping/events{/privacy}","received_events_url":"https://api.github.com/users/ping/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-05-07T04:56:11Z","updated_at":"2015-05-20T17:26:54Z","closed_at":"2015-05-07T13:55:43Z","body":"My setup OSX 10.9.5.\r\nI ran ./devscripts/setup-gae.sh\r\n\r\n```\r\nDownloading python packages\r\nDownloading/unpacking youtube-dl>=2014.03.12 (from -r ./gae/gae_requirements.txt (line 1))\r\n  Using download cache from ./gae/tmp/cache/https%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fy%2Fyoutube_dl%2Fyoutube_dl-2015.05.04.tar.gz\r\n  Running setup.py egg_info for package youtube-dl\r\n    \r\nRequirement already up-to-date: flask in /Library/Python/2.7/site-packages (from -r ./gae/gae_requirements.txt (line 2))\r\nDownloading/unpacking Werkzeug>=0.7 from https://pypi.python.org/packages/source/W/Werkzeug/Werkzeug-0.10.4.tar.gz#md5=66a488e0ac50a9ec326fe020b3083450 (from flask->-r ./gae/gae_requirements.txt (line 2))\r\n  Using download cache from ./gae/tmp/cache/https%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2FW%2FWerkzeug%2FWerkzeug-0.10.4.tar.gz\r\n  Running setup.py egg_info for package Werkzeug\r\n    \r\n    no previously-included directories found matching 'docs/_build'\r\n    no previously-included directories found matching 'docs/_themes'\r\n    warning: no previously-included files matching '*.py[cdo]' found anywhere in distribution\r\n    warning: no previously-included files matching '__pycache__' found anywhere in distribution\r\n    warning: no previously-included files matching '*.so' found anywhere in distribution\r\n    warning: no previously-included files matching '*.pyd' found anywhere in distribution\r\nRequirement already up-to-date: Jinja2>=2.4 in /Library/Python/2.7/site-packages (from flask->-r ./gae/gae_requirements.txt (line 2))\r\nRequirement already up-to-date: itsdangerous>=0.21 in /Library/Python/2.7/site-packages (from flask->-r ./gae/gae_requirements.txt (line 2))\r\nRequirement already up-to-date: markupsafe in /Library/Python/2.7/site-packages (from Jinja2>=2.4->flask->-r ./gae/gae_requirements.txt (line 2))\r\nSuccessfully downloaded youtube-dl Werkzeug\r\nCopying python packages to ./gae/lib\r\ncp: ./gae/build/flask/flask: No such file or directory\r\ncp: ./gae/build/itsdangerous/itsdangerous.py: No such file or directory\r\nPatching youtube_dl\r\n```\r\n\r\nI got a bunch of import errors for flask and itsdangerous and I had to separately download flask and itsdangerous and copy them into ./gae/lib/ before it sorta worked.\r\n\r\nWhen I tried to test the /api/info endpoint, I got a server 500 error. The stack trace:\r\n\r\n```\r\nERROR    2015-05-07 04:49:16,481 app.py:1423] Exception on /api/info [GET]\r\nTraceback (most recent call last):\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/flask/app.py\", line 1817, in wsgi_app\r\n    response = self.full_dispatch_request()\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/flask/app.py\", line 1477, in full_dispatch_request\r\n    rv = self.handle_user_exception(e)\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/flask/app.py\", line 1381, in handle_user_exception\r\n    reraise(exc_type, exc_value, tb)\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/flask/app.py\", line 1475, in full_dispatch_request\r\n    rv = self.dispatch_request()\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/flask/app.py\", line 1461, in dispatch_request\r\n    return self.view_functions[rule.endpoint](**req.view_args)\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/youtube_dl_server/app.py\", line 60, in wrapper\r\n    response = f(*args, **kargs)\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/youtube_dl_server/app.py\", line 78, in info\r\n    result = get_videos(url)\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/youtube_dl_server/app.py\", line 34, in get_videos\r\n    res = ydl.extract_info(url, download=False)\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/youtube_dl/YoutubeDL.py\", line 661, in extract_info\r\n    return self.process_ie_result(ie_result, download, extra_info)\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/youtube_dl/YoutubeDL.py\", line 707, in process_ie_result\r\n    return self.process_video_result(ie_result, download=download)\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/youtube_dl/YoutubeDL.py\", line 1089, in process_video_result\r\n    if info_dict['extractor'] in ['youtube', 'ted'] and FFmpegMergerPP(self).available:\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/youtube_dl/postprocessor/ffmpeg.py\", line 34, in __init__\r\n    self._determine_executables()\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/youtube_dl/postprocessor/ffmpeg.py\", line 90, in _determine_executables\r\n    (p, get_exe_version(p, args=['-version'])) for p in programs)\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/youtube_dl/postprocessor/ffmpeg.py\", line 90, in <genexpr>\r\n    (p, get_exe_version(p, args=['-version'])) for p in programs)\r\n  File \"/Users/ping/PycharmProjects/youtube-dl-api-server/gae/lib/youtube_dl/utils.py\", line 1382, in get_exe_version\r\n    out, _ = subprocess.Popen(\r\nAttributeError: 'module' object has no attribute 'Popen'\r\n```\r\nAny idea what's wrong? Same error on the local devserver and deployed on GAE."},"comment":{"url":"https://api.github.com/repos/jaimeMF/youtube-dl-api-server/issues/comments/103968001","html_url":"https://github.com/jaimeMF/youtube-dl-api-server/issues/30#issuecomment-103968001","issue_url":"https://api.github.com/repos/jaimeMF/youtube-dl-api-server/issues/30","id":103968001,"user":{"login":"jaimeMF","id":1239727,"avatar_url":"https://avatars.githubusercontent.com/u/1239727?v=3","gravatar_id":"","url":"https://api.github.com/users/jaimeMF","html_url":"https://github.com/jaimeMF","followers_url":"https://api.github.com/users/jaimeMF/followers","following_url":"https://api.github.com/users/jaimeMF/following{/other_user}","gists_url":"https://api.github.com/users/jaimeMF/gists{/gist_id}","starred_url":"https://api.github.com/users/jaimeMF/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaimeMF/subscriptions","organizations_url":"https://api.github.com/users/jaimeMF/orgs","repos_url":"https://api.github.com/users/jaimeMF/repos","events_url":"https://api.github.com/users/jaimeMF/events{/privacy}","received_events_url":"https://api.github.com/users/jaimeMF/received_events","type":"User","site_admin":false},"created_at":"2015-05-20T17:26:54Z","updated_at":"2015-05-20T17:26:54Z","body":"With d3c43a067dff0893299c3faffd7ad93621f84cd9 it shouldn't fail when libraries are installed globally."}}