2

「conda build fibtestpackage」コマンドを使用してパッケージをビルドしようとしています。

「fibtestpackage」は Cython を使用してビルドされているため、.sh ファイルには次のコマンドがあります。

python setup.py build_ext --inplace

ビルドが正常に終了しても、出力は期待どおりです。


パッケージを取得しています... fibtestpackage-1.0.0 100% |##################################| 時間: 0:00:00 3.03 MB/秒

パッケージを抽出しています... [ COMPLETE ] |########################################## ########| 100%

パッケージをリンクしています ... [ COMPLETE ] |########################################## ########| 100%


YAML ファイルにある 1 つのテストが失敗します。私が持っている唯一のテストは次のようになります。


test:
  # Python imports
  imports:
      - fibtestpackage
      #- numpy
      #- samplers

したがって、そのインポートエラー、

ImportError: fibtestpackage という名前のモジュールがありません

importerror が発生する理由についての最初の推測は、ビルドによって生成された .SO、.C、および .PYX ファイル (およびライブラリの他のファイル) が anaconda/lib/python2.7/site に配置されていないためです。 -packages/ 他のモジュールが配置されているフォルダー。これをシェル ファイルで指定する必要がありますか、それとも「python setup.py build_ext --inplace」コマンドでカバーする必要がありますか?

私の2番目の推測は、ディストリビューションに(更新後の)2つの異なるバージョンのcondaがあるということです。

1) Python 2.7.8 |アナコンダ 2.1.0 (64 ビット)| (デフォルト、2014 年 8 月 21 日 18:22:21)

2) Python 2.7.8 |Continuum Analytics, Inc.| (デフォルト、2014 年 8 月 21 日 18:22:21)

これが問題の原因になっている可能性はありますか? ビルド環境がライブラリを間違った場所にインストールしている可能性がありますか?

よろしくお願いします。

4

1 に答える 1

2

_buildConda ビルドは、 (通常 ~/anaconda/envs/_build にある)と呼ばれるビルド conda 環境を作成します。ここにすべてをインストールする必要がありますpython setup.py install。 yamlが環境にpythonインストールされ、_buildそこにインストールされるためです。

ビルドの最後に、conda build はビルド環境内のすべての新しいファイルをラップし、それらから conda パッケージを作成します。テスト フェーズがある場合は、環境を削除して_buildというテスト環境を作成し、_testそこにパッケージをインストールして実行します。

この問題をデバッグするには、~/anaconda/envs/_test で Python を実行してみてください。

あなたの場合、python setup.py build_ext --inplace実際にファイルをインストールするのではなく、ファイルをビルドするだけの問題である可能性があります。ビルドの最後にチェックして、存在するファイルの数を確認します。0 の場合、これが問題です。

于 2014-10-29T19:14:35.123 に答える