Why is "pip install -U --no-deps PyBERT" failing, in the setup.py file of one of PyBERT's dependencies?

259 views Asked by At

One of my users is reporting the following failure, when attempting to update the PyBERT package, using:

pip install -U --no-deps PyBERT

> Requirement already up-to-date: pybert in
> c:\anaconda2\lib\site-packages Collecting traitsui (from pybert)  
> Using cached traitsui-5.1.0.zip Collecting chaco (from pybert)   Using
> cached chaco-4.6.0.tar.gz
>     Complete output from command python setup.py egg_info:
>     Traceback (most recent call last):
>       File "<string>", line 1, in <module>
>       File "c:\users\twesterh\appdata\local\temp\pip-build-yxql2k\chaco\setup.py",
> line 131, in <module>
>         write_version_py()
>       File "c:\users\twesterh\appdata\local\temp\pip-build-yxql2k\chaco\setup.py",
> line 111, in write_version_py
>         match = re.match(r'.*?\.dev(?P<dev_num>\d+)', full_v)
>     NameError: global name 'full_v' is not defined

Does anyone know:

  1. Why is the "pip install..." process calling the chaco setup.py file, when pip has already decided to use the installed/cached version of chaco?
  2. Where the global name, full_v, is normally defined?

My user reports that, if he uninstalls/reinstalls PyBERT, then everything works fine. Can anyone explain what subtle differences occur, for "pip install -U {package}", as compared to "pip uninstall {package}" / "pip install {package}"?

Please, note that chaco was installed with "conda install chaco", as opposed to "pip install chaco". I'm using mixed installation commands, because:

  1. I find that I get better results, in general, when I give conda the first crack at new package installation.
  2. PyBERT has not, yet, been registered in conda-forge.

Thanks!
-db

0

There are 0 answers