ImportError: cannot import name certificate_transparency
Stone Zhong
stone.zhong at gmail.com
Thu Jan 17 03:27:36 EST 2019
On Thursday, January 17, 2019 at 12:10:51 AM UTC-8, Stone Zhong wrote:
> Hi,
>
> My program depend on package oci, I am using the following command to install it:
> pip install oci
>
> Everything works perfect in virtualenv (I am still using python 2.7.x)
>
> Now I am creating a zip file from the libraries:
>
> pip install oci -t ~/temp/oci
> cd ~/temp/oci
> zip -r ~/temp/oci.zip .
>
> Test A) PYTHONPATH=~/temp/oci myapp.py
> Test B) PYTHONPATH=~/temp/oci.zip myapp.py
>
> Test A) works fine and Test B) failed with error "ImportError: cannot import name certificate_transparency"
>
> It seems we have some so file there:
> ./cryptography/hazmat/bindings/_padding.so
> ./cryptography/hazmat/bindings/_openssl.so
> ./cryptography/hazmat/bindings/_constant_time.so
> ./_cffi_backend.so
>
> I also tested below:
>
> mytest.py:
> ...
> from cryptography.hazmat.bindings._constant_time import lib
>
> PYTHONPATH=~/temp/oci.zip mytest.py
>
> I end up with error "ImportError: No module named _constant_time"
>
> So my guess is, package with shared lib (.so files) cannot be put into zip file, is it a bug in python zipimport?
>
> The reason I have to use a zip file is, I need it in a spark job, I cannot do "virtualenv" in pyspark, have to use --py-files to pass the zip file for all dependent packages.
>
> Thanks,
> Stone
ok, found the doc @ https://docs.python.org/3/library/zipimport.html
<quote>
import of dynamic modules (.pyd, .so) is disallowed.
</quote>
So it is not a bug.
More information about the Python-list
mailing list