2016-11-21 4 views
-1

私はgolangで、以下の機能を持っている:私はこの実行したときにインポートファイルを変更するにはどうすればよいですか?

import (
    "github.com/aws/aws-sdk-go/service/iam" 
    "github.com/aws/aws-sdk-go/aws/session" 
    "fmt" 
) 
func NewIAM() *SphinxIAM { 
// awsConfig := aws.NewConfig() 
    sess, err := session.NewSession() 
    if err != nil { 
     fmt.Println("Failed to create session,", err) 
     return nil 
    } 
    session := &SphinxIAM{iam: iam.New(sess)} 
    return session 
} 

は今、私は次のエラーを取得しています:

cannot use sess (type *session.Session) as type "github.com/aws/aws-sdk-go/aws/client".ConfigProvider in argument to iam.New: 
    *session.Session does not implement "github.com/aws/aws-sdk-go/aws/client".ConfigProvider (wrong type for ClientConfig method) 
     have ClientConfig(string, ...*"stash/cloud/sphinx/vendor/github.com/aws/aws-sdk-go/aws".Config) "stash/cloud/sphinx/vendor/github.com/aws/aws-sdk-go/aws/client".Config 
     want ClientConfig(string, ...*"github.com/aws/aws-sdk-go/aws".Config) "github.com/aws/aws-sdk-go/aws/client".Config 

を私は輸入取得方法を変更する必要がありますが、どのように私は正確に行いますそれを行う?

ありがとうございます!

答えて

0

github.com/aws/aws-sdk-go/aws/sessionパッケージがであり、が販売されており、stash/cloud/sphinx/vendor/github.com/aws/aws-sdk-go/awsからロードされています。

しかし、あなたはそれを渡したい機能:iam.New()がvendoredされていない、それは同じベンダーのフォルダ(stash/cloud/sphinx/vendor/xxx)から来ていませんが、それはgithub.com/aws/aws-sdk-go/service/iamから直接来ます。

両方のパッケージを同じベンダーのフォルダに入れます。依存関係ツールの1つ(たとえばglide)がそうである可能性があります。その場合は、両方を扱うようにツールに指示する必要があります。

関連する問題