Using sudo with pip3?
Cameron Simpson
cs at zip.com.au
Sat Jan 7 21:42:14 EST 2017
On 07Jan2017 19:45, jim <jf_byrnes at comcast.net> wrote:
>On 01/07/2017 05:58 PM, Clint Moyer wrote:
>>So to minimize your issues with installing Python packages, take the
>>path of least resistance and install through your system repo. And use
>>Python2 or Python3 explicitly to avoid conflicts.
>
>As I mentioned in another post, most of the more popular modules I had
>installed on my old system using pip are available in the repository
>and I will use the repository to install them on the new system. I now
>understand that using sudo is a bad idea.
Cool.
>One question from the earlier post that did not get answered concerned
>upgrading a repository installed module with pip.
I would recommend not. As soon as you get there:
- if the vendor updates it, use apt-get (I know this doesn't fit your
situation with Ubuntu 16.04 LTS)
- if you want a more modern version, now is the time to use virtualenv
The thing about LTS is that the vendor guarentees its stability. If you upgrade
the vendor installed package using /usr/bin/pip (or pip3) as root, you're
replacing the vendor supplied module with a newer one, which may break vendor
supplied packages which use that module expected the _old_ behaviour.
So endeavour to leave the vendor suppplied stuff entirely alone except for
apt-get style updates.
Instead, make a virtualenv an upgrade it with a newer package.
>To get started on the new system I installed pip3 from the repository. The
>first time I used it to install a module it said a newer version was available
>and gave the command to update it. What are the consequences of using pip to
>upgrade repository installed modules?
In theory, if the newer version of the module installs a breaking change it can
break things in the system which might use that module and expect its old
behaviour. Also, _sometimes_, vendors supply patches versions of packages,
possibly including python modules. If they're modified/patched, there is
probably a reason. You'd be undoing that patch.
>I ask because 16.04 is LTS and won't be getting version upgrades
>unless they are security related. Also pandas is in the repositories but the
>module pandas-datareader, which I may need to use, is not.
Again: make a virtualenv as yourself.
Its pip can be run as yourself, therefore cannot accidentally modify system
module. It's pip can freely upgrade a older module. If you install a module
_not_ supplied by the vendor, the virtualenv pip can freely do that, and _also_
upgrade a required module should that be required (PyPI package definitions let
a module specify required revisions of other modules it may use).
Cheers,
Cameron Simpson <cs at zip.com.au>
More information about the Python-list
mailing list