How to pip install a local python package?

Question:

Question

I installed a local package called credentials using

pip install -e c:usersworkersrcclockworklibcredentials

But when I try to import the package from a sibling directory, it fails with an ImporError:

cd c:usersworkersrcclockworkbank
python -c "import credentials"
...
ImportError: No module named 'credentials'

Confusingly, the package credentials is listed as successfully installed as shown when I run pip list:

...
credentials (1.0.0, c:usersworkersrcclockworklibcredentials)
...

How can I install my local package so that it can be imported?

Background

I am using Python 3.4 (32-bit). The package contains two files:

credentials__init__.py
credentialssetup.py

The __init__.py file defines a single function. The setup.py file is short:

from distutils.core import setup

setup(name='credentials', version='1.0.0')

Workaround

I currently add the directory containing the package (c:usersworkersrcclockworklib) to my PATH variable as a workaround. But my question is how to install the package properly so that I do not need to modify the PATH.

Asked By: expz

||

Answers:

Uninstall the python package then install it using:

python -m pip install -e c:usersworkersrcclockworklibcredentials

What is probably happening is that you have multiple python installs and pip is run from one install while you are trying to use the package from another. See also:

Answered By: Mr_and_Mrs_D

The problem centers on setup.py. It needs to declare a package:

from distutils.core import setup

setup(name='credentials', version='1.0.0', packages=['credentials'])

But this setup.py must be in the parent directory of the credentials package, so in the end, the directory structure is:

...credentialssetup.py
...credentialscredentials__init__.py

With this change, the module is found after reinstalling the package.

This could also be caused by two Python installs (but wasn’t in my case), and @Mr_and_Mrs_D gives an answer for that case.

Answered By: expz
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.