web-dev-qa-db-ja.com

conda経由で自分のpythonモジュール(パッケージ)をインストールし、その変更を監視する方法

ファイルmysql.pyがあり、ほとんどすべてのプロジェクトで使用しています。これらのプロジェクトのそれぞれに同じファイルをコピーして貼り付けたくないので、モジュールを作成しました。将来的にはパッケージになる可能性があります。

質問

Conda環境にローカルモジュールを追加し、mysql.pyで何かを変更すると自動的に更新または監視する方法を教えてください。パッケージに対して同じことを行う方法は?

ローカルチャンネル/リポジトリをセットアップし、mysql.pyでフォルダーを参照することは避けたいと思います。

22
Michael

これまでの回答では必要なことを行っていますが、代わりに使用するものを示したいだけです。とにかくcondaパッケージについて学ぶことは私の計画だったので...

0.良い情報源

  1. Michael Sarahan-パッケージとパッケージの作成は「うまくいく」| YouTube
  2. GitHub-audreyr/cookiecutter:cookiecutters(プロジェクトテンプレート)からプロジェクトを作成するコマンドラインユーティリティ およびこれらのテンプレートのいずれかを使用します:

1. cookiecutterを使用してcondaのpythonパッケージテンプレートを作成します

conda install -c conda-forge cookiecutter

パッケージを初期化するディレクトリに移動して、次の操作を行います。

cookiecutter https://github.com/conda/cookiecutter-conda-python.git

これにより、作成するパッケージに関する基本的な情報が要求されます。次に、リポジトリに変更します

cd myrepo

2.パッケージをビルドする

実行されていない場合は、conda-buildがインストールされていることを確認してください

conda install conda-build

anaconda-別のconda-buildルートディレクトリの使用-Stack Overflow で説明したように、必ずCONDA_BLD_PATHを設定してください。これは、パッケージを検索できるディレクトリになり、次を実行します。

conda build conda.recipe

あなたのパッケージをビルドし、あなたの後にクリーンアップする

conda build purge

3.独自のローカルチャネルを設定します(anaconda.orgへのアップロードなし)

読む

助けを求めて。

各プラットフォームにインデックスを付けます。私のビルドには既にrepodata.jsonが含まれているため、誰かがこのステップが不要であることを確認できるかもしれません。そうでなければ:

conda index D:\CODE\condamychannel\win-64

でパッケージが見つかるかどうかをテストします

conda search -c file:///D:\CODE\condamychannel --override-channels mypackage

または、(環境ごとに)構成にチャネルを直接追加します

conda config --add channels file:///D:\CODE\condamychannel

4.パッケージのインストール(および更新)

activate myenv

そして

conda install mypackage

mypackageを変更したら、meta.yamlおよびsetup.pyで新しいバージョン番号を付け、conda build conda.recipeでパッケージをビルドします。更新は単純です

conda update mypackage

パッケージが機能するかどうかを確認します。

python
>>> import cli from mypackage
>>> cli.cli()
CLI template

これは最適な方法ではないかもしれませんが、上記で説明したすべての手順を含むチュートリアルは見つかりませんでした。

17
Michael

Condaビルドパッケージをインストールする場合(スクリプトだけでなくパッケージがある場合)、「編集可能」モードでインストールできます。

conda develop .

(スクリプトを使用してディレクトリから実行)。これは、pipの「編集可能」モードに非常に似ています。

pip install -e .

どちらのアプローチでも、次のいずれかの方法でパッケージをアンインストールできます。

conda develop -u .

または

pip uninstall .

(パッケージではなく)スクリプトがある場合は、PYTHONPATH環境変数を編集または設定して、スクリプトが含まれるディレクトリを含めることができます。

6
darthbith

異なるスクリプトで複数回呼び出さなければならないラッパー関数があったので、そのファイルwrappers.pyをAnacondasite-packagesフォルダーにコピーしました。私のコンピューターでは、これはC:\ ProgramData\Anaconda3\Lib\site-packagesにありました。次に、wrappers.pyが必要なときはいつでも、次のようにスクリプトにインポートします。

import wrappers

インポートが成功したことを確認する場合は、IDEで開発環境としてAnacondaを選択し、インポート後にfrom wrappers import (intellisense suggestions)のIntellisenseを呼び出すことができます。または、IDLEを使用することもできます。

>>> import wrappers
>>>(if you get this Prompt, this means the import was successful).

Conda統合は、 カスタムチャネル を作成した場合にのみ可能です。これは、condaが次の場所(OSに基づいて)でパッケージを検索し、condaに特定の場所でモジュールを検索するように指示するため、conda-buildをインストールしてカスタムチャネルを作成する必要があるためです。

- https://repo.continuum.io/pkgs/main/win-64
- https://repo.continuum.io/pkgs/main/noarch
- https://repo.continuum.io/pkgs/free/win-64
- https://repo.continuum.io/pkgs/free/noarch
- https://repo.continuum.io/pkgs/r/win-64
- https://repo.continuum.io/pkgs/r/noarch
- https://repo.continuum.io/pkgs/pro/win-64
- https://repo.continuum.io/pkgs/pro/noarch
- https://repo.continuum.io/pkgs/msys2/win-64
- https://repo.continuum.io/pkgs/msys2/noarch

レポ/チャンネルの作成を避けたい場合は、上記のような簡単なインポートで仕事をするはずです。さらに、モジュールに変更を加えて保存すると、スクリプトには常に最新のimportが含まれます。

1
amanb