diff --git a/python/paddle_serving_client/__init__.py b/python/paddle_serving_client/__init__.py index c6a29461c7ee004249620eeb0ff46278c4ef0ff6..c50ff95e371e0b2bc3d1828df579cf7ec2fb0118 100644 --- a/python/paddle_serving_client/__init__.py +++ b/python/paddle_serving_client/__init__.py @@ -12,7 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from .serving_client import PredictorClient +import paddle_serving_client +import os from .proto import sdk_configure_pb2 as sdk from .proto import general_model_config_pb2 as m_config import google.protobuf.text_format @@ -75,8 +76,17 @@ class Client(object): self.feed_shapes_ = [] self.feed_types_ = {} self.feed_names_to_idx_ = {} + self.rpath() + + def rpath(self): + lib_path = os.path.dirname(paddle_serving_client.__file__) + client_path = os.path.join(lib_path, 'serving_client.so') + lib_path = os.path.join(lib_path, 'lib') + os.popen('patchelf --set-rpath {} {}'.format(lib_path, client_path)) + def load_client_config(self, path): + from .serving_client import PredictorClient model_conf = m_config.GeneralModelConfig() f = open(path, 'r') model_conf = google.protobuf.text_format.Merge( diff --git a/python/paddle_serving_client/version.py b/python/paddle_serving_client/version.py index d67c284b10a57ec866bafcb4a1f28a2529d5073d..3513e4ce98ac9cd6655495d3bbaacb6943782837 100644 --- a/python/paddle_serving_client/version.py +++ b/python/paddle_serving_client/version.py @@ -12,6 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. """ Paddle Serving Client version string """ -serving_client_version = "0.1.0" +serving_client_version = "0.1.1" serving_server_version = "0.1.0" module_proto_version = "0.1.0" diff --git a/python/setup.py.client.in b/python/setup.py.client.in index 4f6f9da45b60919182386936ba385aec1ac5b96c..ce4d65546c83ad3c374af124ee767fbe42ef9429 100644 --- a/python/setup.py.client.in +++ b/python/setup.py.client.in @@ -17,6 +17,7 @@ from __future__ import division from __future__ import print_function import platform +import os from setuptools import setup, Distribution, Extension from setuptools import find_packages @@ -26,7 +27,15 @@ from paddle_serving_client.version import serving_client_version def python_version(): return [int(v) for v in platform.python_version().split(".")] +def copy_lib(): + os.popen('mkdir -p paddle_serving_client/lib') + for lib in ['libpython2.7.so.1.0', 'libssl.so.10', 'libcrypto.so.10']: + r = os.popen('whereis {}'.format(lib)) + text = r.read() + os.popen('cp {} ./paddle_serving_client/lib'.format(text.strip().split(' ')[1])) + max_version, mid_version, min_version = python_version() +copy_lib() REQUIRED_PACKAGES = [ 'six >= 1.10.0', 'protobuf >= 3.1.0','paddlepaddle' @@ -36,8 +45,8 @@ packages=['paddle_serving_client', 'paddle_serving_client.proto', 'paddle_serving_client.io', 'paddle_serving_client.metric', - 'paddle_serving_client.utils'] -package_data={'paddle_serving_client': ['serving_client.so']} + 'paddle_serving_client.utils',] +package_data={'paddle_serving_client': ['serving_client.so','lib/*'],} package_dir={'paddle_serving_client': '${PADDLE_SERVING_BINARY_DIR}/python/paddle_serving_client', 'paddle_serving_client.proto': @@ -47,7 +56,7 @@ package_dir={'paddle_serving_client': 'paddle_serving_client.metric': '${PADDLE_SERVING_BINARY_DIR}/python/paddle_serving_client/metric', 'paddle_serving_client.utils': - '${PADDLE_SERVING_BINARY_DIR}/python/paddle_serving_client/utils'} + '${PADDLE_SERVING_BINARY_DIR}/python/paddle_serving_client/utils',} setup( name='paddle-serving-client',