[Tutor] Best solution to modifying code within a distributed library
Chip Wachob
wachobc at gmail.com
Fri Sep 21 08:21:27 EDT 2018
Looks like I'm golden in this regard. My first path element is ''
which is what I'd want if I'm including a modified library.
Thank you,
On Thu, Sep 20, 2018 at 6:14 PM, Mats Wichmann <mats at wichmann.us> wrote:
> On 09/19/2018 09:59 PM, Chip Wachob wrote:
>> Mats,
>>
>> Silly question here..
>>
>> But after using the git clone command, I've got a directory of the
>> Adafruit project in the same directory as my project.
>>
>> When I import the library, will I get the 'installed' library, or do I
>> get the library that is in the project directory?
>>
>> If I have to specify which library to use, how is that done?
>
> you look at, and possibly modify, sys.path
>
>
> >>> import sys
> >>> sys.path
> ['', '/usr/lib64/python36.zip', '/usr/lib64/python3.6',
> '/usr/lib64/python3.6/lib-dynload',
> '/usr/lib64/python3.6/site-packages', '/usr/lib/python3.6/site-packages']
>
>
> the first element '' is the local directory, so with my sys.path, it
> would pick the local one first.
>
>
> if you wanted the opposite, that is be _sure_ you get the installed one,
> you could use a stanza something like this:
>
>
> savepath = sys.path
> sys.path = [path for path in sys.path if path.strip('.')]
> import foo
> sys.path = savepath
>
>
> but this is actually kind of tricky stuff, trying to deal with possibly
> two modules of the same name, so tread carefully.
>
>
More information about the Tutor
mailing list