mc2-project / secure-xgboost

Secure collaborative training and inference for XGBoost.
https://mc2-project.github.io/secure-xgboost/
Apache License 2.0
105 stars 32 forks source link

`sudo python3 setup.py install` yields an incomplete installation #138

Closed ryanleh closed 3 years ago

ryanleh commented 3 years ago

After following the documentation for installation on Ubuntu 18.04, I'm receiving the following error:

Python 3.7.9 (default, Apr  7 2021, 16:27:17)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import securexgboost
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/site-packages/securexgboost-0.1-py3.7.egg/securexgboost/__init__.py", line 11, in <module>
    from .core import DMatrix, Booster
  File "/usr/local/lib/python3.7/site-packages/securexgboost-0.1-py3.7.egg/securexgboost/core.py", line 21, in <module>
    from .rpc import remote_pb2
ImportError: cannot import name 'remote_pb2' from 'securexgboost.rpc' (/usr/local/lib/python3.7/site-packages/securexgboost-0.1-py3.7.egg/securexgboost/rpc/__init__.py)

Upon closer inspection, I noticed that the contents of /secure-xgboost/python-package/securexgboost/rpc and /usr/local/lib/python3.7/site-packages/securexgboost-0.1-py3.7.egg/securexgboost/rpc differ:

ryan@ryan-dev-vm:~/secure-xgboost/python-package/securexgboost/rpc$ ls
README.md  __init__.py  ndarray_pb2.py  ndarray_pb2_grpc.py  protos  remote_pb2.py  remote_pb2_grpc.py  rpc_utils.py

vs.

ryan@ryan-dev-vm:/usr/local/lib/python3.7/site-packages/securexgboost-0.1-py3.7.egg/securexgboost/rpc$ ls
README.md  __init__.py  __pycache__  protos  rpc_utils.py

Copying the missing files fixes the issue, but also running sudo python3 setup.py install a second time (??) correctly copies the files.