Question
I installed a local package called credentials
using
pip install -e c:\users\worker\src\clockwork\lib\credentials
But when I try to import the package from a sibling directory, it fails with an ImporError:
cd c:\users\worker\src\clockwork\bank
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:\users\worker\src\clockwork\lib\credentials)
...
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
credentials\setup.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:\users\worker\src\clockwork\lib
) 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
.
Uninstall the python package then install it using:
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:
The problem centers on
setup.py
. It needs to declare a package:But this
setup.py
must be in the parent directory of thecredentials
package, so in the end, the directory structure is: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.