Pip list shows package is installed but import package throws ImportError

Viewed 451

I have a package that's hosted in my VCS. I run:

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

Here is the log. You'll notice it runs a custom script in the middle of installing which actually builds the source files in the project. See 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...

So that all seems to install successfully. Even running pip list outputs:

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

However it throws an ImportError if I try to import the package.

$ 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

What could be going on here? Is it likely by build script fails on installation or is my package definition wrong or what could it be?

1 Answers
Related