私はTwitterのパンツビルドツールで "Hello World"エクササイズをしていました。 "パンツ"レポ情報源をクローンした後、私は自分の地元のパンツをうまく構成しました。"Hello World"の例のパンツビルドの問題
まず、私のようにレポでネストされたディレクトリを作成しました。そして、
$ mkdir -p mark/python/project_test
、私は私のアプリを指定してビルドするには、そのディレクトリ内の2つのファイルを作成:
$ touch mark/python/project_test/Hello_world.py
$ touch mark/python/project_test/BUILD
Hello_World.py :
print "Hello World!"
BUILD:
python_binary(name="myapp",
source="Hello_world.py"
)
それは私のような./pantsでそれを実行したときに完璧に走った:私は
import utility
print "Hello World!", utility.user(), "!"
:として次に
$ ./pants run mark/python/project_test:myapp
$ Hello World!
、私は変更 "Hello_world.py" で依存関係を追加しようとしていましたまた、同じディレクトリにutility.pyを作成しました。
import os
def user():
return os.environ['USER']
元のアプリケーションに依存関係を追加すると、 BUILD:私は同じコマンドで./pantsを呼び出したときに
python_library(name="app-lib",
source=globs("*py")
)
python_binary(name="myapp",
source="hello_world.py",
dependencies=[pants(':app-lib')]
)
しかし、それはエラーを返しました:
$ ls mark/python/project_test
$ BUILD Hello_world.py utility.py
:
$ ./pants run mark/python/project_test:myapp
Exception caught: (<class 'pants.base.cmd_line_spec_parser.BadSpecError'>)
Exception message: name 'pants' is not defined
while executing BUILD file BuildFile(mark/python/project_test/BUILD,
FileSystemProjectTree(/Users/mli/workspace/source))
Loading addresses from 'mark/python/project_test' failed.
when translating spec mark/python/project_test:myapp
は私のディレクトリ上の3つのファイルが現在ありません
私のアプリがutility.pyからライブラリを読み込めないのはなぜですか?フォルダツリーとBUILDファイルを整理する正しい方法は何ですか?
- 私は新しいツールを作成していて、質問に答えるときに誰かがパンツを使用するというビットコンテクストを提供できるかどうか本当に感謝しています。ありがとう!! :)
ありがとうございました@mateor!そうですか。更新されたバージョンがある場合は、古いBUILD構文を使用している可能性があります。それは完全に動作します!再びありがとう! –