[openstack-dev] [diskimage-builder] disk-image-create from virtualenv not working

Alec Hothan (ahothan) ahothan at cisco.com
Fri Jul 3 01:50:51 UTC 2015


Thanks for the tip! after a few trials I finally made it work by
commenting out the following line in /etc/sudoers:

#Defaults 
secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"



  Alec


On 7/2/15, 11:25 AM, "Jens Rosenboom" <j.rosenboom at x-ion.de> wrote:

>2015-07-02 19:58 GMT+02:00 Alec Hothan (ahothan) <ahothan at cisco.com>:
>>
>> I wonder if anybody else ran into the same issue as it looks like PyYAML
>> is required on the native python in order for disk-image-crate to
>>succeed.
>> Installing PyYAML in a virtual environment and running disk-iage-create
>> from that venv won't work as one of the script fails to import yaml:
>>
>>
>> dib-run-parts Thu Jul 2 09:27:50 PDT 2015 Running
>> /tmp/image.ewtpa5DW/hooks/extra-data.d/99-squash-package-install
>>
>> ['/tmp/image.ewtpa5DW/hooks/bin', '/usr/lib/python2.7',
>> '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk',
>> '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload',
>> '/usr/local/lib/python2.7/dist-packages',
>> '/usr/lib/python2.7/dist-packages']
>>
>> Traceback (most recent call last):
>>   File
>> "/tmp/image.ewtpa5DW/hooks/extra-data.d/../bin/package-installs-squash",
>> line 26, in <module>
>>     import yaml
>> ImportError: No module named yaml
>>
>>
>> I added a trace to print sys.path in that script and sure enough, it is
>> bypassing completely my venv path, it looks like the PATH is not picking
>> up the existing PATH from the calling shell.
>>
>>
>>
>> from the same shell that ran disk-iage-create above:
>> $ pip list | grep YAML
>> PyYAML (3.11)
>>
>> $ python
>> Python 2.7.6 (default, Jun 22 2015, 17:58:13)
>> [GCC 4.8.2] on linux2
>> Type "help", "copyright", "credits" or "license" for more information.
>>>>> import sys
>>>>> print sys.path
>> ['', '/home/localadmin/kb/lib/python2.7',
>> '/home/localadmin/kb/lib/python2.7/plat-x86_64-linux-gnu',
>> '/home/localadmin/kb/lib/python2.7/lib-tk',
>> '/home/localadmin/kb/lib/python2.7/lib-old',
>> '/home/localadmin/kb/lib/python2.7/lib-dynload', '/usr/lib/python2.7',
>> '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk',
>> '/home/localadmin/kb/local/lib/python2.7/site-packages',
>> '/home/localadmin/kb/lib/python2.7/site-packages']
>>
>>
>> Is that a known issue/requirement or is there a workaround (other than
>> installing pyYAML on the native python?
>
>elements/package-installs/extra-data.d/99-squash-package-install does
>a "sudo -E package-installs-squash", however at least on Ubuntu the
>default seems to be having env_reset defined, causing the environment
>variables being cleared and thereby losing information about your
>venv. As a workaround you could try to change the env_reset setting in
>your /etc/sudoers.
>
>__________________________________________________________________________
>OpenStack Development Mailing List (not for usage questions)
>Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list