我不知道在这里粘贴所有代码是否可行,但我正在查看this git repo中的代码。
如果你看一下他们的例子:
ec2 = EC2('access key id', 'secret key')
...但是没有EC2
类。但是,在libcloud\providers.py
中,有一个字典可以将EC2
映射到EC2NodeDriver
中找到的libcloud\drivers\ec2.py
。正确的映射由get_driver(provider)
计算,但该方法似乎不会在任何地方调用。
显然我是python的新手,但不是编程。我甚至不确定我应该在文档中查找什么来解决这个问题。
答案 0 :(得分:5)
example.py
包含import
语句,内容如下:
from libcloud.drivers import EC2, Slicehost, Rackspace
这意味着EC2
类是从libcloud.drivers
模块导入的。但是,在这种情况下,libcloud.drivers
实际上是包(Python 包包含模块),这意味着{{1应该在EC2
中的文件__init__.py
中定义,但事实并非如此。这意味着在这种特定情况下,他们的示例代码实际上是错误的。 (我下载代码并在运行libcloud/drivers/
时出现导入错误,如您所见,文件example.py
根本不包含任何定义,最不包含libcloud/drivers/__init__.py
定义。 )
答案 1 :(得分:0)
检查libcloud \ examples.py可能会有所帮助。我看到了这个:
from libcloud.drivers import EC2, Slicehost, Rackspace
python'import'语句从其他python模块引入该类,在本例中是libcloud.drivers模块。