From d83bea267fcd4654354df7c9a967a7e19c4b69d4 Mon Sep 17 00:00:00 2001 From: Grazfather Date: Wed, 16 Mar 2016 15:59:41 -0700 Subject: [PATCH] Improve error message when install fails --- src/setup.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/setup.py b/src/setup.py index fdd8ed4..9604c8d 100755 --- a/src/setup.py +++ b/src/setup.py @@ -13,7 +13,6 @@ from setuptools.command.build_ext import build_ext from setuptools.extension import Extension import os import platform -import re import shutil import struct import sys @@ -55,19 +54,31 @@ class FridaPrebuiltExt(build_ext): os_version = "macosx-10.6-intel" if sys.version_info[0] == 3 else "macosx-10.11-intel" elif system == 'Linux': os_version = "linux-x86_64" if arch == 64 else "linux-i686" - egg_url = "https://pypi.python.org/packages/{python_version}/f/frida/frida-{frida_version}-py{python_version}-{os_version}.egg".format( + egg_filename = "frida-{frida_version}-py{python_version}-{os_version}.egg".format( frida_version=frida_version, python_version=python_version, os_version=os_version ) + egg_url = "https://pypi.python.org/packages/{python_version}/f/frida/{egg_filename}".format( + python_version=python_version, + egg_filename=egg_filename + ) try: print('downloading prebuilt extension from', egg_url) egg_data = urlopen(egg_url).read() except: - egg_url = re.sub(r".*/f/frida/(.*)", "file:///\g<1>", egg_url) - print('trying to get prebuilt extension from the current folder', egg_url) - egg_data = urlopen(egg_url).read() + egg_path = os.path.join(os.getcwd(), egg_filename) + print('trying to get prebuilt extension from the current folder', egg_path) + try: + with open(egg_path, "rb") as f: + egg_data = f.read() + except: + egg_data = None + + if egg_data is None: + raise Exception("Could not find prebuilt Frida extension. " + "Prebuilts only provided for python 2.6-2.7 and 3.5") egg_file = BytesIO(egg_data)