在前一篇博文中,我们讲述了如何将python脚本通过编译进行加密,按照第三种方法编译之后得到的可执行文件,迁移到其他环境的时候可能会遇到其他问题:
1. Python解释器路径问题
错误信息:
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
解决办法
export PYTHONHOME=
或者
unset PYTHONHOME
2. $PYTHONPATH路径问题
错误信息:
ImportError: No module named site
查找site相关路径
[root@58362c56d43d]find / -name site.py*
/usr/lib64/python2.7/site.pyc
/usr/lib64/python2.7/site.py
/usr/lib64/python2.7/site.pyo
将路径添加到$PYTHONPATH
中
[root@58362c56d43d]export PYTHONPATH=$PYTHONPATH:/usr/lib64/python2.7
3. 找不到_socket
模块
错误信息:
import _socket ModuleNotFoundError: No module named '_socket'
出现这个问题的可能性是你当前的python版本太低,我从docker hub拉取的centos:7.6.1810
镜像自带Python 2.7.5,这个版本找不到_socket
模块,将Python升级到2.7.15
解决。
4. openssl_md5() takes no keyword arguments
错误
错误信息:
TypeError: openssl_md5() takes no keyword arguments
将Python升级到2.7.15
解决。
注:当升级到2.7.15版本之后,以上第二步的PYTHONPATH要相应修改,默认的库已经不在那个文件夹了。