2016-04-22 7 views
0

私はいくつかのcondaインストールを実行するためにAnsibleを使用しているプロジェクトに取り組んでいます。既存のcondaで既にカバーされている依存関係を持つgithubから2つの追加パッケージをインストールする必要があります。に依存する2番目のパッケージを持つをインストールします。pipインストールされたパッケージをconda環境に登録する

以下のコードを使って、依存関係を再インストールせずに最初のパッケージをインストールできます。

- name: install mypackage 
    shell: /home/myname/envs/myproject/bin/pip install --install-option="--prefix=/home/myname/envs/myproject" --egg https://github.com/myname/mypackage/archive/my_branch.zip 

これは私が第二のパッケージをインストールしようとすると、インストールして失敗していたとして、それが最初のパッケージを認識しない、しかし、そこに私の道の95%を取得します。

私はこれに新しいですし、私は壁に物事を投げてきたが、私は、このような方法で、最初のパッケージをインストールすることはできませんよ。それは、既存のcondaが をインストール認識

  • 2番目のパッケージは最初のパッケージを識別します
+0

私はタイトルに関する提案も受け付けています。私はこの1つを愛していないが、もっと良いものを考えることができなかった... – Chris

答えて

2

私はあなたの仕事から理解できることから、パッケージをインストールするためにvenvを使用しています。私はなぜあなたがシェルモジュールを使ってインストールを処理しているのか理解できません。これは良くありません。 あなたはpipモジュールのansibleでこのすべてを処理することができます:

- name: "Install mypackage" 
    pip: 
    virtualenv: /home/{{ lookup('env','USER') }}/envs/myproject/ 
    name: "{{ item }}" 
    with_items: 
    - "https://github.com/myname/mypackage1/archive/my_branch.zip" 
    - "https://github.com/myname/mypackage2/archive/my_branch.zip" 

これは正しく、必要な順序でパッケージをインストールする必要があり、shell出力を通して、あなたのように動作することの手間をかけずに。あなたは卵などで、通常のPythonパッケージを混在させることができ

注..あなたはexecutableを使用することができますvirtualenvに代わるものとして

をご覧ください。docs

+0

これはすごく見える。私は何をしているのか分からず、他の人たちが何をしているのかを模倣しています。私はこれを試してみましょうが、私は今それを受け入れるつもりです。 – Chris

+0

それがうまくいかない場合、私は非常に悲しいでしょう:(あなたはエラーピップが出てきてもそれを貼り付けることができますが、それは役に立つかもしれません – shaps

+0

'msg:[Errno 13] Permission denied'。私はそれを編集するには少なくとも6文字必要でした – Chris