>> Now, as I say, I can fix this quite easily with a virtualenv aware pth
>> file, but since its broken today and AFAIK there isn't a bug open
>> about this, I think it will be fine.
>
> The breaking case was having a package installed editable in the global 
> site-packages and then installing another sub-package non-editable in the 
> virtualenv. We stopped doing that by making devstack install oslo libraries 
> non-editable, but I think, based on what you’re saying, if the test 
> environment has access to the global site-packages and only some of the oslo 
> libs are installed then building the test environment will fail if it needs 
> another lib because it won’t install the packages it can see globally. Is 
> that right? Has anyone encountered that situation?

I needed to make a couple of tweaks, and I got confused, so I've
written a test script.
Anyhow:
Editable in global, ok, lets see..
sudo apt-get remove python-oslo.config
sudo pip install -e ./openstack/oslo.config
...
  Found existing installation: six 1.5.2
    Uninstalling six:
      Successfully uninstalled six
Successfully installed oslo.config six netaddr

(Thats going to confuse dpkg, which thinks it installed six, but
nevermind, moving on :)

mkvirtualenv --system-site-packages test-system-site
pip install ./pbr
cd oslo
pip install .
python -c 'import oslo.config'
# is ok
cd ../openstack/oslo.db
pip install .
..
  Found existing installation: oslo.config 1.2.1.2.g1ca69b8
    Not uninstalling oslo.config at
/home/robertc/work/openstack/oslo.config, outside environment
/home/robertc/.virtualenvs/test-system-site
 .. [note that that means it still installed a local oslo.config in the venv]
python -c 'import oslo.config'
# is ok
python -c 'import oslo.db'
# is ok
cd ..
python -c 'import oslo.config'
# is ok
python -c 'import oslo.db'
# is ok
pip uninstall oslo.db
cd openstack/oslo.db
python -c 'import oslo.config'
# ok
python -c 'import oslo.db'
# ok

And your second test, with oslo installed -e.
 works fine with oslo.db installed non-dash-e
 fails with oslo.db installed -e
 fails with olso.db uninstalled

I'm poking around now. It looks like pip install -e outside a venv
writes to /usr/local/lib/python2.7/dist-packages, which is pure crack
- dist-packages is for the distro, site-packages for pip. Sigh. Also
writing to /usr/local/lib when the python prefix is /usr. More
weirdness.

Will be back with more soon :)

-- 
Robert Collins <[email protected]>
Distinguished Technologist
HP Converged Cloud

_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to