問題タブ [waf]
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.
waf - Wafで指定されたヘッダーファイルを確認するにはどうすればよいですか?
私はwafを使用してCプログラムを構築しています。構成段階で特定のヘッダーファイルの存在を確認したいと思います。それを行う方法はありますか?
python - インストールせずに卵としてパッケージ化されたPython拡張モジュールをロード可能にするにはどうすればよいですか?
私はビルド スクリプトを素晴らしい Waf ツールに基づいて作り直している最中です(以前から SCons を使用していましたが、あまりにも遅すぎます) 。
とにかく、次の状況に遭遇しましたが、解決策が見つかりません。
- 以前にビルドされたいくつかの卵ファイルに依存する製品があります。
- ビルド プロセスの一部としてPyInstallerを使用して製品をパッケージ化しようとしています。
- 最初に依存関係を構築します。
- 次に、PyInstaller を実行して、ビルドした卵に依存する製品をパッケージ化します。パッケージ化プロセスの一環として、これらの卵ファイルをロードできるようにするには、PyInstaller が必要です。
これは簡単に聞こえます: どうあるPYTHONPATH
べきかを考え出し、変数を正しく設定するコピーを作成し、以前に構成した環境を env 引数として渡してsys.environ
PyInstaller スクリプトを呼び出します。subprocess.Popen
問題は、PYTHONPATH
追加する卵が zipsafe としてパッケージ化された拡張モジュールである場合、設定だけでは十分ではないように思われることです。この場合、組み込みライブラリをインポートできないことがわかります。
卵を解凍すると (ディレクトリの名前を .egg に変更)、それ以上の設定なしで卵をインポートできますが、この場合はこれが必要なわけではありません。
次のようにして、卵をサブシェルからインポートすることもできます。
PYTHONPATH
インポートしたい卵を含むディレクトリに設定します(卵自体のパスではありません)- Python シェルをロードし
pkg_resources.require
、卵を見つけるために使用します。
これが完了すると、卵は通常どおりロードされます。繰り返しますが、これは実用的ではありません。なぜなら、これらの卵をオフからインポートする準備ができている方法で Python シェルを実行できる必要があるからです。
汚いオプションは、実際のターゲット スクリプトを呼び出す前に上記のアクションを実行するラッパー スクリプトを出力することですが、これは間違っているように思われます。これを行うためのより良い方法があるはずです。
windows - win32でファイルシステムの「アクセス拒否」エラーをデバッグする方法は?
私は今、ビルドスクリプトで大変な時間を過ごしています。ビルドプロセスを駆動するためにWafを使用しており、ビルド中に断続的なエラーが発生するWindowsを除いて、すべてがうまく機能します。
エラーは常に基本的に何らかの形式の「アクセス拒否」エラーであり、ビルドプロセス中に作成した一時ファイルに関連して、ツールを実行してそのジョブを実行できるようにします。たとえば、NSISを実行して実行可能インストーラーを生成する前に、必要なすべてのファイルをビルドディレクトリに「ステージング」し、そこからコマンドを実行する必要があります。期待どおりに動作する場合もありますが、コピーしたファイルの1つについてエラーが報告される場合もあります。たとえば、次のようになります。
File: failed opening file "Platform\\Win32\\lxml-2.2.1-py2.6-win32.egg
私は問題が何であるかを解明しようと一年を費やしましたが、問題は断続的であるため、それは本当に困難です。私が最後に試したのは、procmonを使用してファイルシステムアクセスを監視し、アクセスエラーの原因を追跡することです。ファイルが存在することがわかっているので、何かがファイルを開いている必要があります。何が悪いのかわからないので、以下に関連する出力を含めています。Pythonは、NSISがファイルを開く前にファイルを閉じているようですが、NSISは失敗しています。誰かがこれに光を当てることができますか?この問題は、この状況だけでなく、ディレクトリを構築するためにコピーしたファイルを処理するためにサブプロセスを生成する他の場合にも当てはまります...
eclipse - 外部ビルド ツールを Eclipse に統合する最良の方法は何ですか?
分散ペアプログラミングを可能にする素敵なプラグインを見つけたので、Python 開発に Eclipse を使い始めたところです。とにかく、Eclipse を既存の環境と適切に統合するための次のステップは、IDE 内から現在のビルド ツール ( Waf ) を駆動する方法を見つけることです。
問題は、Eclipse をセットアップして Waf を駆動する方法はありMake
ますか? Make
利用可能なターゲットを特定できるなど、非常に高度な機能がいくつかあるようです。これまでにできる方法があるかどうかを教えてくれるボーナスポイントです! (答えは、これがすべて Ecplipse の Make プラグインに組み込まれているということだと思います)。
python - Pythonを使用してWindowsコマンドプロンプトで色を使用するにはどうすればよいですか?
Windows コマンド プロンプトの出力が本来あるべきときに色付けされないwaf の問題にパッチを適用しようとしています。このパッチを実際に実装する方法を見つけようとしていますが、十分なリソースを見つけるのに苦労しています - 誰かが私を正しい方向に向けることができますか?
更新 1
Cygwin を必要とするものは何も提案しないでください。
c - waf を使用して共有ライブラリを構築するにはどうすればよいですか?
GNU autotools よりもはるかに簡単ですっきりしているように見えるので、wafを使用して共有ライブラリを構築したいと考えています。
実際、私が書き始めた wscript に関して、これまでにいくつかの質問があります。
を含む行はsource = '*.c'
機能しません。ワイルドカードを使用する代わりに、すべての .c ファイルを指定する必要がありますか?
たとえば、デバッグ ビルドを有効にするにはどうすればよいですか (現在、wscript はデバッグ ビルド CFLAGS を使用していますが、これをエンド ユーザーに対してオプションにしたいと考えています)。
ライブラリソースはサブディレクトリ内にあり、lib を使用するプログラムはそれぞれ独自のサブディレクトリにあることが計画されています。
build - 脳死のためのオープンソースのビルドシステムを誰も作成しなかったのはなぜですか?
共有ライブラリを構築したい。GNU/Linux は、開発およびターゲット プラットフォームです。C は実装言語です。
ビルド システムをどのようにセットアップするかを決めることができず、それぞれが嫌いな理由がたくさんある次の 3 つのオプションを検討し続けます。
- 手作りの Makefile - 私は過去にほとんどこの方法で作業してきました
- GNU Autotools - 今年の初めに autotools を使用して共有 C ライブラリを構築しましたが、その方法と何百ものチュートリアルをどこで選択したかを忘れてしまいました。
- waf - おそらく単純ですが、それほど簡単ではありません。今日の午後に動作しました。
どちらに行くか決められません。1 つに落ち着いて作業を開始し、問題に遭遇して、もう 1 つのシステムが優れていると判断します。私は立ち往生しています。問題を解決するのに役立つかもしれない誰かがこれに光を当てることができますか?
python - WAF を実行できません
Ubuntu で Monotooth ライブラリをビルドしようとしていますが、コンパイルが必要なネイティブ コンポーネントがあります。github のディストリビューションには wscript ファイルがあり、ビルドには WAF が必要です。ただし、 waf configure を実行しようとすると、次のようになります。
私はpythonを知りません。これが実際に何を言っているのかわかりません。ライブラリ(モジュール)が不足していますか?
python - pydevを使用してサブプロセスをデバッグする方法はありますか?
Eclipse / PyDevを使用して、子プロセスの作成に使用するコードをデバッグする方法を見つけようとしていますsubprocess.Popen
。作成された子プロセスをデバッグできるようにしたいと考えています。問題は、プロセスの境界を越えてデバッグする方法が見つからないことです。実際には不可能だと思います。それでも、あなたが尋ねるまであなたは決して知りません、そしてそれで私はやっています!
少し背景:必要に応じてノーズを呼び出すことでユニットテストを呼び出すWafによって駆動される複雑なビルドプロセスがあります。これらのプロセスにフックして、ユニットテストの失敗をデバッグしたいと思います。noseを直接実行することはできますが、問題は、モジュールを正しくロードするために構成する必要のある環境がかなり複雑であり、回避できる場合はコードを複製したくないということです。
私はリモートデバッグモードを知っていますが、リモートプロセスでデバッガーを手動で呼び出す必要があるため、かなり不便です。誰かが私がやろうとしていることをする方法を知っているなら、それは大いにありがたいです。