我正在尝试在Ubuntu 16.04机器上安装并执行py-3parencrytor实用程序。但是,在某些安装中,我始终会出现导入错误。我不确定为什么它可以在某些系统上运行而在其他系统上却无法运行。请在下面找到错误:
stack@cssosbe04-b04:~/farhan/workspace/python-hpedockerplugin/ansible_3par_docker_plugin$ hpe3parencryptor
Traceback (most recent call last):
File "/usr/local/bin/hpe3parencryptor", line 11, in <module>
load_entry_point('py-3parencryptor==1.0.7', 'console_scripts', 'hpe3parencryptor')()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 479, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2703, in load_entry_point
return ep.load()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2321, in load
return self.resolve()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2331, in resolve
raise ImportError(str(exc))
ImportError: 'module' object has no attribute 'encryption_utility'
在安装成功和失败的情况下,我还可以看到/ usr / local / bin下的hpe3parencryptor文件有所不同
安装成功后,创建的python文件如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from hpe3parencryptor import encryption_utility
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(encryption_utility())
如果安装失败(失败),文件内容将有所不同:
#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'py-3parencryptor==1.0.7','console_scripts','hpe3parencryptor'
__requires__ = 'py-3parencryptor==1.0.7'
import re
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(
load_entry_point('py-3parencryptor==1.0.7', 'console_scripts', 'hpe3parencryptor')()
)
我已经尝试了多种方法,但是未能弄清楚是什么原因导致了这种行为。在某些情况下,重新安装解决了该问题,但并非总是如此。
任何帮助都将受到赞赏。
谢谢!