0

So I am pretty new to Ubuntu and Python, so apologies if this is a stupid question. I have been consulting this question on what package manager to use for Python apt-get install vs pip install

and

https://stackoverflow.com/questions/49836676/error-after-upgrading-pip-cannot-import-name-main

seem to suggest that I not use pip to manage the packages on a global level. I should do any updates/installation to packages through apt unless a package is not there in Canonical's distribution. From what I understand, if I want to use a updated package for one project than the one in Ubuntu/Canonical's repository, I should use pip inside of a Virtual Environment. But how should I install virtualenv itself?

Now I have a few questions:

1) Should I use apt to get virtualenv or use pip considering that virtualenv seems to have gone significant upgrades from version 15 to 16 based on a glance at the release notes

2) Considering that Canonical often doesn't have the updated versions of Python packages or software, for a person who is a beginner at programming/development, how important is it to use the latest and newest releases of packages?

3) Is it application specific?

4) Specifically, in the case of numpy and virtualenv, is it useful for a beginner to have the latest version or can a slightly older version (e.g. numpy version 1.13 vs 1.16) work because Canonical seems to install version 1.13?

1 Answers1

2

Please try to stick to one question in posts, you will get better answers that way.

There is no rule saying you can't use both apt and pip in conjunction you just run a much higher risk of running into Dependency Hell

1.) I would suggest using apt for as much package management as you can, and if you find you need some obscure python lib apt doesn't supply, either use pip or install from source (I would install from source, but to each his own).

If you do decide to use pip as it will likely be easier, I would just keep a list of what is installed with pip.

2.) It depends on your end goal. I intro programming (amongst other more interesting classes) at a major university for 2 years and I really didn't care how "up to date" all their libraries were as I was teaching vanilla python (python 3.6). In any event though, I would say that up to date libraries aren't essential for new programmers (barring you're not using some library as old as your grandfather) as the fundamentals of programming seem to be agnostic of versions.

3.) Is what application specific?

4.) See 2

j-money
  • 2,382