Search code examples
pythonpipsetup.py

"Can't get a consistent path to setup script from installation directory"


I'm using pip to install a package from a git repository:

pip install -e git+git://github.com/knipknap/SpiffWorkflow.git@master#egg=SpiffWorkflow-dev

The repo gets cloned without a problem, but installation fails with this message:

Running setup.py egg_info for package SpiffWorkflow
Installing collected packages: SpiffWorkflow
Running setup.py develop for SpiffWorkflow
 error: ("Can't get a consistent path to setup script from installation 
  directory", '/', '/home/fcorreia/venvs/myproj/src/spiffworkflow')

I have tried taking a look to the project's setup.py, but without much success... Any idea?


Solution

  • It is because the flag -e means "editable", and it is the same doing python setup.py develop, that creates a symbolic link from <PACKAGE_NAME_LOWERCASE> to your site-packages directory and not running an usual installation.

    Looking at SpiffWorkflow's setup.py I can see where the problem relies:

    srcdir = join(dirname(__file__), 'src')
    setup(...,
          package_dir      = {'': srcdir})
    

    It says that the package content is located at src, instead of spiffworkflow (what develop mode expects).

    You can just drop the -e flag and be happy:

    pip install git+git://github.com/knipknap/SpiffWorkflow.git@master#egg=SpiffWorkflow-dev
    

    References: