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
.
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:
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.
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
.
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:
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.