問題タブ [egg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python ライブラリ/アプリケーションを .egg ファイルとしてパッケージ化する利点は何ですか?
.egg ファイルについていくつか読んだことがありますが、lib ディレクトリにあることに気付きましたが、開発者として使用することの利点/欠点は何ですか?
python - Pythonプログラムを.eggファイルに変換するにはどうすればよいですか?
Pythonプログラムを.eggファイルに変換するにはどうすればよいですか?
python - Pythonコード構成の質問:卵+パッケージ+ビルドアウト+単体テスト+ SVN
共通のモジュールを共有するPythonプロジェクトがいくつかあります。これまで、私は...ええと...共通コードの複数のコピーを保持し、手動で同期してきました。しかし、私は明らかに何か他のことをしたいと思っています。
zc.Buildoutがおそらく私が必要としているものであるかのように、今私には見えます。私がすべきことは、システムの再利用可能な各コンポーネントを別々の卵に入れ、ビルドアウトを使用してそれらをプロジェクトにアセンブルすることだと思います。
また、特定のモジュールについては、ユニットテストを別のパッケージまたはeggに入れて、すべてのプロジェクトにコンポーネントのユニットテストのコピーをインストールしないようにする必要があると考えています。ライブラリが使用されているだけではなく、ライブラリが開発されている場所でのみ単体テストを実行したいと思います。
だから多分私はこのようなものが欲しい
等
app1とapp2の両方が独自のコードとテストを備えた独立したアプリケーションであるが、lib1とlib2の両方を含み使用している場合。そして、lib1 / test、lib1 / code、lib2 / test、lib2code、app1、app2は別々の卵です。これは正しいですか?
しかし、今は混乱しています。app1を開発するとき、ビルドアウトでlib1、lib2、およびapp1のコピーを、app1の下に直接配置するのではなく、別の作業ディレクトリにプルする必要があると思います。しかし、これは私のSVNソース管理でどのように機能しますか?作業ディレクトリがビルドアウトを使用して動的に構築されている場合、変更をリポジトリにチェックバックできるライブSVNディレクトリにすることはできませんか?
ビルドアウトがどのように使用されるのか誤解しましたか?まったく別のアプローチをとったほうがいいでしょうか?プロジェクト間でソース管理とモジュール再利用をどのように組み合わせますか?
更新:現在この質問に回答してくれた2人に感謝します。私はこれでもっと実験しています。
python - Pythonパッケージとegg-infoディレクトリ
誰かがegg-infoディレクトリがそれぞれのモジュールにどのように関連付けられているかを説明できますか?たとえば、私は次のようにしています。
私はegg-infoディレクトリが対応するモジュールをsetuptools(easy_install)に見えるようにすることだと思いますよね?もしそうなら、setuptoolsはどのようにegg-infoディレクトリをモジュールディレクトリに結び付けますか?
私が正しい方向に進んでいると仮定すると、例として...私の既存のパッケージをsetuptoolsに表示したい場合は、モジュールディレクトリとegg-infoディレクトリをサイトにシンボリックリンクできますか?パッケージディレクトリ?私はこれを自分で試しただけですが、パッケージがsetuptoolsに表示されるかどうかをテストする方法がわかりません。これをテストする方法も教えていただければボーナスポイント:)
私がこれらすべてを理解しようとしている主な理由は、モジュールの一部をサイトパッケージにシンボリックリンクして、モジュールに変更を加え、それらを使用するスクリプトに変更を再インストールせずに表示できるようにするためです。各変更後のPyPIからの卵。
python - apache ユーザーは .python-eggs に書き込めません
環境変数を設定するPYTHON_EGG_CACHE
か、Python ライブラリを圧縮されていない .egg としてインストールする必要があることを読みました。
あなたはどれを提案しますか?
python - 非圧縮卵としてMySQLdb(python用)をインストールします
インストール手順は次のとおりです。
これにより、.egg ファイルが作成されます。通常の圧縮されていないライブラリとしてファイルをダンプするようにインストールに指示するにはどうすればよいですか?
ありがとう!
python - Windowsでeasy_installを使用せずに.eggファイルをインストールするにはどうすればよいですか?
Python 2.6を使用していて、easy_installモジュールをインストールしたいと思います。問題は、Python2.6のeasy_ installで利用可能な唯一のインストールパッケージが.eggファイルであるということです!私は何をすべきか?
django - fastcgi の背後で実行されている卵として django appserver をデプロイするにはどうすればよいですか?
apache/fastcgi の背後で django appserver を実行したいと考えています。それは問題ありません.djangoはすぐにそれを行います.
この appserver を setuptools でデプロイできるようにしたいです。つまり、egg にして easy_install でインストールします。setuptools は django appserver を標準的に補完するものではありませんが、その部分も処理できます。
しかし、私が理解できないのは、dispatch.fcgiが実際にこのmy_app.eggを呼び出してサーバープロセスを「開始」する方法です。以前にこの構成で実行したことのある人はいますか?
python - Easy_installキャッシュダウンロードファイル
インストールが失敗したときにファイルを再度ダウンロードする必要がないようにeasy_installを構成する方法はありますか?
python - インストールせずに卵としてパッケージ化されたPython拡張モジュールをロード可能にするにはどうすればよいですか?
私はビルド スクリプトを素晴らしい Waf ツールに基づいて作り直している最中です(以前から SCons を使用していましたが、あまりにも遅すぎます) 。
とにかく、次の状況に遭遇しましたが、解決策が見つかりません。
- 以前にビルドされたいくつかの卵ファイルに依存する製品があります。
- ビルド プロセスの一部としてPyInstallerを使用して製品をパッケージ化しようとしています。
- 最初に依存関係を構築します。
- 次に、PyInstaller を実行して、ビルドした卵に依存する製品をパッケージ化します。パッケージ化プロセスの一環として、これらの卵ファイルをロードできるようにするには、PyInstaller が必要です。
これは簡単に聞こえます: どうあるPYTHONPATH
べきかを考え出し、変数を正しく設定するコピーを作成し、以前に構成した環境を env 引数として渡してsys.environ
PyInstaller スクリプトを呼び出します。subprocess.Popen
問題は、PYTHONPATH
追加する卵が zipsafe としてパッケージ化された拡張モジュールである場合、設定だけでは十分ではないように思われることです。この場合、組み込みライブラリをインポートできないことがわかります。
卵を解凍すると (ディレクトリの名前を .egg に変更)、それ以上の設定なしで卵をインポートできますが、この場合はこれが必要なわけではありません。
次のようにして、卵をサブシェルからインポートすることもできます。
PYTHONPATH
インポートしたい卵を含むディレクトリに設定します(卵自体のパスではありません)- Python シェルをロードし
pkg_resources.require
、卵を見つけるために使用します。
これが完了すると、卵は通常どおりロードされます。繰り返しますが、これは実用的ではありません。なぜなら、これらの卵をオフからインポートする準備ができている方法で Python シェルを実行できる必要があるからです。
汚いオプションは、実際のターゲット スクリプトを呼び出す前に上記のアクションを実行するラッパー スクリプトを出力することですが、これは間違っているように思われます。これを行うためのより良い方法があるはずです。