2011-12-20 16 views
12

私はpip経由でインストール可能なPythonソースパッケージを構築する方法を理解しようとしています。私は、http://packages.python.org/an_example_pypi_project/setuptools.html で説明されているsetup.pyファイルと指定されたディレクトリにいくつかの簡単なテストファイルを作成してテストプロジェクトを作成しようとしました。Pythonパッケージをインストールするソースtarball with pip

python setup.py sdistdist/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を配布しています。

+1

問題は、現在のディレクトリがプロジェクトのソースを含むディレクトリである間にpipを呼び出した場合にのみ発生するようです。ソースディストリビューションをビルドした後に作成された.egg-infoサブディレクトリが存在すると、pipが混乱するようです。これがバグかどうかわからない - 私はpip開発者に尋ねる。 – lebedov

+2

将来参照する場合は、ここにお問い合わせくださいhttps://github.com/pypa/pip/issues/414 – lebedov

+0

これは私のプロジェクトで動作し、私は.egg情報も持っています。あなたは 'tree'を使ってあなたのディレクトリを見ましたか? –

答えて

4

githubに投稿したバグレポートには、再現するための優れた指示がありました。 (私はチケットにコメントし、ここで回答をコピーしました)

あなたが記載したパッケージの正確なバージョンを使用して手紙への指示に従いましたが、この問題を再現できません。

ここで問題になっているコマンドのpip install --verboseからの私の出力です:

Unpacking ./dist/anyjson-0.3.1.tar.gz 
    Running setup.py egg_info for package from file:///home/david/projects/anyjson-0.3.1/dist/anyjson-0.3.1.tar.gz 
    running egg_info 
    creating pip-egg-info/anyjson.egg-info 
    writing pip-egg-info/anyjson.egg-info/PKG-INFO 
    writing top-level names to pip-egg-info/anyjson.egg-info/top_level.txt 
    writing dependency_links to pip-egg-info/anyjson.egg-info/dependency_links.txt 
    writing manifest file 'pip-egg-info/anyjson.egg-info/SOURCES.txt' 
    warning: manifest_maker: standard file '-c' not found 

    reading manifest file 'pip-egg-info/anyjson.egg-info/SOURCES.txt' 
    reading manifest template 'MANIFEST.in' 
    writing manifest file 'pip-egg-info/anyjson.egg-info/SOURCES.txt' 
Installing collected packages: anyjson 
    Running setup.py install for anyjson 
    running install 
    running build 
    running build_py 
    creating build 
    creating build/lib.linux-i686-2.7 
    creating build/lib.linux-i686-2.7/anyjson 
    copying anyjson/__init__.py -> build/lib.linux-i686-2.7/anyjson 
    running install_lib 
    creating /tmp/TEST/lib/python2.7/site-packages/anyjson 
    copying build/lib.linux-i686-2.7/anyjson/__init__.py -> /tmp/TEST/lib/python2.7/site-packages/anyjson 
    byte-compiling /tmp/TEST/lib/python2.7/site-packages/anyjson/__init__.py to __init__.pyc 
    running install_egg_info 
    running egg_info 
    writing anyjson.egg-info/PKG-INFO 
    writing top-level names to anyjson.egg-info/top_level.txt 
    writing dependency_links to anyjson.egg-info/dependency_links.txt 
    warning: manifest_maker: standard file '-c' not found 

    reading manifest file 'anyjson.egg-info/SOURCES.txt' 
    reading manifest template 'MANIFEST.in' 
    writing manifest file 'anyjson.egg-info/SOURCES.txt' 
    Copying anyjson.egg-info to /tmp/TEST/lib/python2.7/site-packages/anyjson-0.3.1-py2.7.egg-info 
    running install_scripts 
    writing list of installed files to '/tmp/pip-gvBT02-record/install-record.txt' 
Successfully installed anyjson 
Cleaning up... 

たぶん、あなたはあなたのピップコマンドをインストールして、比較のために、出力を投稿する--verboseを追加することができますか?

+1

にも同様の問題がありました。私は私の.bashrcファイルでPYTHONDONTWRITEBYTECODEをコメントアウトし、ログアウトし、ログインし、私の仮想環境を開始し、pipのインストールはうまくいきました。 – highpost

関連する問題