Huelse / SEAL-Python

Microsoft SEAL 4.X For Python
MIT License
310 stars 66 forks source link

python3 setup.py build_ext -i #32

Closed qxzhou1010 closed 3 years ago

qxzhou1010 commented 4 years ago

Hi, I followed the Linux installation instructions step by step, then I tried to run the files under the tests folder, and an error was reported. _*root@1be2fda826a0:/workspace/SEAL-Python/tests# python3 0_data_type.py Traceback (most recent call last): File "0_data_type.py", line 1, in from seal import ImportError: /workspace/SEAL-Python/tests/seal.cpython-37m-x8664-linux-gnu.so: undefined symbol: deflateInit**_ Then, I try to use the first solution of FAQ, but another error occured: the SEAL_LIB_BUILD_TYPE=Shared don't exist. Please help me!

Huelse commented 4 years ago

It seems that you are building in docker, what about try to use the build_docker.sh ? Or just try to build in your native environment

Huelse commented 4 years ago

In SEAL/native/src to run the cmake . -D SEAL_LIB_BUILD_TYPE=Shared, or change the Static_PIC to Shared in SEAL/native/src/CMakeLists.txt line 101

qxzhou1010 commented 4 years ago

I changed the Static_PIC to Shared in SEAL/native/src/CMakeLists.txt line 101 Library build type (SEAL_LIB_BUILD_TYPE): Shared However, another error occured: _(base) root@1be2fda826a0:/workspace/SEAL-Python# python3 setup.py install Can not find the seal lib (base) root@1be2fda826a0:/workspace/SEAL-Python# python3 setup.py install Can not find the seal lib (base) root@1be2fda826a0:/workspace/SEAL-Python# python3 setup.py build_ext -i Can not find the seal lib_

Huelse commented 4 years ago

change the path in setup.py line 15, I mentioned it in the FAQ.

Huelse commented 4 years ago

If you have no problem, please close this issue.

DreamingRaven commented 4 years ago

Hey @qxzhou1010 I think its likeley either that the seal lib has not been built properly (its not shared by default I dont think), or your system does not know where to find it. Some systems like mine (archlinux) look in different folders to other distros, you may need to add it if you can manually find where the file has been installed to. You may want to take a look at where I had a similar ish problem before of not finding the seal lib: https://github.com/Huelse/SEAL-Python/issues/14

I also have applied these patches to my own fork since I need them as shared objects .so permenantley: https://github.com/Huelse/SEAL-Python/compare/master...DreamingRaven:3.4.5-rlatest in particular SEAL/native/src/CMakeLists.txt and setup.py but I have not rolled in some recent base64 changes yet on mine atleast.

As for docker, I have confirmed that the docker container works as it should, so there should not be any problem there if you want to try that out too. Containers are super usefull for reproducing stuff like this, and in the Dockerfile outline a step by step of how the image is created so it is kind of its own instruction manual too.

However like Huelse says, if you have already solved the problem, please do post it here and close the issue so others can benefit from your experience. Cheers and all the best.