私はpip経由でインストール可能なPythonソースパッケージを構築する方法を理解しようとしています。私は、http://packages.python.org/an_example_pypi_project/setuptools.html で説明されているsetup.pyファイルと指定されたディレクトリにいくつかの簡単なテストファイルを作成してテストプロジェクトを作成しようとしました。Pythonパッケージをインストールするソースtarball with pip
python setup.py sdist
とdist/an_example_pypi_project-0.0.4.tar.gz
という名前のプロジェクトのソースtarballを作成した後、私はvirtualenvの環境にインストールしてみましたが ~/TEST/bin/pip install dist/an_example_pypi_project-0.0.4.tar.gz
で~/TEST
と呼ばれます。ピップは、エラーをスローしませんでしたが、パッケージをインストールしていないようでした。私はeasy_installを使用したtarballからインストールすることができました
$ ~/TEST/bin/pip install dist/an_example_pypi_project-0.0.4.tar.gz
Unpacking ./dist/an_example_pypi_project-0.0.4.tar.gz
Running setup.py egg_info for package from file:///home/lebedov/an_example_pypi_project/dist/an_example_pypi_project-0.0.4.tar.gz
Cleaning up...
$ find ~/TEST -name "an_example*"
$
注:
$ ~/TEST/bin/easy_install dist/an_example_pypi_project-0.0.4.tar.gz
Processing an_example_pypi_project-0.0.4.tar.gz
Running an_example_pypi_project-0.0.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-tfXxeW/an_example_pypi_project-0.0.4/egg-dist-tmp-N2QY_N
warning: build_py: byte-compiling is disabled, skipping.
warning: install_lib: byte-compiling is disabled, skipping.
zip_safe flag not set; analyzing archive contents...
Adding an-example-pypi-project 0.0.4 to easy-install.pth file
Installed /home/lebedov/TEST/lib/python2.7/site-packages/an_example_pypi_project-0.0.4-py2.7.egg
Processing dependencies for an-example-pypi-project==0.0.4
Finished processing dependencies for an-example-pypi-project==0.0.4
$ find ~/TEST/ -name "an_example*"
/home/lebedov/TEST/lib/python2.7/site-packages/an_example_pypi_project-0.0.4-py2.7.egg
私が無視アムpipでインストール可能にするためにパッケージに何かを設定しますか?私はPython 2.7.2を使い、0.6.21、virtualenv 1.7、pip 1.0.2を配布しています。
問題は、現在のディレクトリがプロジェクトのソースを含むディレクトリである間にpipを呼び出した場合にのみ発生するようです。ソースディストリビューションをビルドした後に作成された.egg-infoサブディレクトリが存在すると、pipが混乱するようです。これがバグかどうかわからない - 私はpip開発者に尋ねる。 – lebedov
将来参照する場合は、ここにお問い合わせくださいhttps://github.com/pypa/pip/issues/414 – lebedov
これは私のプロジェクトで動作し、私は.egg情報も持っています。あなたは 'tree'を使ってあなたのディレクトリを見ましたか? –