2017-07-26 10 views
2

VCSでホストされているパッケージがあります。私は実行する:ピップリストにはパッケージがインストールされているがインポートパッケージにはImportErrorがスローされています

$ pip install -vvv git+https://myvcs.com/myprotos 

ここにログがあります。インストールの途中で実際にプロジェクトのソースファイルをビルドするカスタムスクリプトを実行していることがわかります。 this question for details of what it's doingを参照してください。

Collecting git+https://myvcs.com/myprotos 
    Cloning https://myvcs.com/myprotos to /private/var/folders/3t/4qwkfyr903d0b7db7by2kj6r0000gn/T/pip-cFzP3I-build 
    Running command git clone -q https://myvcs.com/myprotos /private/var/folders/3t/4qwkfyr903d0b7db7by2kj6r0000gn/T/pip-cFzP3I-build 
    Running setup.py (path:/private/var/folders/3t/4qwkfyr903d0b7db7by2kj6r0000gn/T/pip-cFzP3I-build/setup.py) egg_info for package from git+https://myvcs.com/myprotos 
    Running command python setup.py egg_info 
    running egg_info 
    creating pip-egg-info/myprotos.egg-info 
    writing pip-egg-info/myprotos.egg-info/PKG-INFO 
    writing top-level names to pip-egg-info/myprotos.egg-info/top_level.txt 
    writing dependency_links to pip-egg-info/myprotos.egg-info/dependency_links.txt 
    writing manifest file 'pip-egg-info/myprotos.egg-info/SOURCES.txt' 
    reading manifest file 'pip-egg-info/myprotos.egg-info/SOURCES.txt' 
    writing manifest file 'pip-egg-info/myprotos.egg-info/SOURCES.txt' 
    Source in /private/var/folders/3t/4qwkfyr903d0b7db7by2kj6r0000gn/T/pip-cFzP3I-build has version 0.0.1, which satisfies requirement myprotos==0.0.1 from git+https://myvcs.com/myprotos 
Installing collected packages: myprotos 
    Running setup.py install for myprotos: started 
    Running command /usr/local/opt/python/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/3t/4qwkfyr903d0b7db7by2kj6r0000gn/T/pip-cFzP3I-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/3t/4qwkfyr903d0b7db7by2kj6r0000gn/T/pip-M03grb-record/install-record.txt --single-version-externally-managed --compile 
    running install 
    Grabbing github.com/google/protobuf... 
    Building Python protos... 
    running build 
    running install_egg_info 
    running egg_info 
    creating myprotos.egg-info 
    writing myprotos.egg-info/PKG-INFO 
    writing top-level names to myprotos.egg-info/top_level.txt 
    writing dependency_links to myprotos.egg-info/dependency_links.txt 
    writing manifest file 'myprotos.egg-info/SOURCES.txt' 
    reading manifest file 'myprotos.egg-info/SOURCES.txt' 
    writing manifest file 'myprotos.egg-info/SOURCES.txt' 
    Copying myprotos.egg-info to /usr/local/lib/python2.7/site-packages/myprotos-0.0.1-py2.7.egg-info 
    running install_scripts 
    writing list of installed files to '/var/folders/3t/4qwkfyr903d0b7db7by2kj6r0000gn/T/pip-M03grb-record/install-record.txt' 
    Running setup.py install for myprotos: finished with status 'done' 
    Removing source in /private/var/folders/3t/4qwkfyr903d0b7db7by2kj6r0000gn/T/pip-cFzP3I-build 
Successfully installed myprotos-0.0.1 
Cleaning up... 

すべてがうまくインストールされているようです。私はパッケージをインポートしようとした場合、それははImportErrorをスローしかし

$ pip list 
. 
. 
. 
myprotos (0.0.1) 
. 
. 
. 

:でもpip list出力を実行しています。

$ python 
Python 2.7.13 (default, Jul 18 2017, 09:17:00) 
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import myprotos 
Traceback (most recent call last): 

    File "<stdin>", line 1, in <module> 
ImportError: No module named myprotos 

何が起こっているのでしょうか?インストール時にビルドスクリプトが失敗するか、パッケージ定義が間違っているか、それは何か?

+0

回答を追加しました。 「egg」は、Pythonコードの単なる配布形式です。 –

答えて

3

卵の名前は、提供するモジュールまたはパッケージの名前と必ずしも同じではありません。実際、これらの名前が異なるのはよくあることです。 1つの卵には複数のパッケージが含まれている可能性があるため、一般的に同じ名前を使用することはできません。さらに、卵の名前には、ダッシュやPythonモジュール名で許可されていない他の文字を入れることができます。

Python site-packagesディレクトリのmyprotos.egg-infoディレクトリには、卵がエクスポートするすべてのトップレベルモジュールとパッケージを一覧表示するファイルtop_level.txtが含まれている必要があります。

+0

私の主な問題は、すべてのPythonがモジュールでネストされているのではなく、リポジトリのトップレベルなので、 'top_level.txt'ファイルに何も追加されていないことです。 – Josh

関連する問題