问题来源:
使用pip安装模块后,在 ~ 用户下测试Python脚本一切正常。但是服务端调用该脚本就不能执行。
分析:
使用 sudo -u www-data python script.py 抛出 ImportError: No module named "XXXX" 的错误。
解决方法:(参考 SO 的解决方案)(对 umask 感兴趣的可以参考 SO 的解决方案)
sudo pip uninstall XXXX
umask 022
sudo pip install XXXX
注: 有时候模块名字含有点号, 如ImportError: No module named bitcoinrpc.authproxy
使用 sudo pip uninstall bitcoinrpc.authproxy 或 sudo pip uninstall bitcoinrpc 都不正确。
此时可以使用 pip list 来查找模块名字
$ pip list
python-bitcoinrpc (0.1)
$ sudo pip uninstall python-bitcoinrpc