What is the best way of installing Python's scientific libraries in MacPorts?

Artemio González López artemiog at mac.com
Mon Oct 4 13:43:06 UTC 2021

> On Oct 4, 2021, at 12:26 PM, Giuseppe 'ferdy' Miceli <ferdy at ferdy.it> wrote:
> 	ciao artemio,
>> On 3 Oct 2021, at 23:05, Artemio González López via macports-users <macports-users at lists.macports.org <mailto:macports-users at lists.macports.org>> wrote:
>> I have installed the python37 port, and would like to install the scientific libraries numpy, scipy, and matplotlib, and also jupyter. I installed by hand the ports
> first of all, unless you have specific reasons, i would suggest to install python39. 
> depending on your choice, i would suggest to set the relevant variant in /opt/local/etc/macports/variants.conf
> i have installed python39 and these are the variants i set up:
> wabi:macports-ports admin$ egrep python /opt/local/etc/macports/variants.conf
> +python
> -python2
> -python27
> +python3
> +python39
> wabi:macports-ports admin$
> secondly, installing a python3x port should have installed also python_select and python3_select ports.
> these are intended to let you choose which version of python you would use as default (please keep in mind macports allows you to have different versions of python alongside including the apple stock ones).
> port select —summary shall show you the correct status:
> wabi:macports-ports admin$ port select --summary
> Name      Selected       Options
> ====      ========       =======
> docutils  py39-docutils  py39-docutils none
> pip       pip39          pip3-apple pip39 none
> pip2      none           none
> pip3      pip39          pip3-apple pip39 none
> pygments  py39-pygments  py39-pygments none
> python    python39       python27 python27-apple python38-apple python39 none
> python2   python27       python27 python27-apple none
> python3   python39       python38-apple python39 none
> sphinx    py39-sphinx    none
> "sudo port select python[3] python39” allows to choose which one you would like to use.
> wabi:macports-ports admin$ sudo port select python3 python39
> Selecting 'python39' for 'python3' succeeded. 'python39' is now active.
> wabi:macports-ports admin$
> at this point you shall install the different modules and port command shall installed and correctly configure the needed ones.
> hope it helps, please do not hesitate to ask further should you need.
> regards,
>> ferdy
>> py-numpy, py-scipy, py-matplotlib, py-jupyter
>> (without specifying a version), and port installed python39, py39-jupyter and the 3.7 versions of all of the above packages. However, when I launched jupyter notebook and tried to run one of my notebooks it couldn’t find any of the scientific libraries I had installed. I then deactivated python39 and py39-jupyter, and installed py37-jupyter. It gave me numerous errors complaining that I had to activate by hand several ports (liek, e.g., sudo port -f activate py37-ipython), but in the end was built. However, when I now launch jupyter notebook I get a message complaining that no kernels where found, and when I run my notebook the scientific libraries aren’t found. I would greatly appreciate any help as to how to fix the mess I probably created, so that I could use python's scientific libraries with python’s MacPorts (instead of using, say, miniconda).
>> Sorry for my clumsiness, and thank you all in advance!
>> Artemio
>> Artemio Gonzalez Lopez
>> artemiog at mac.com <mailto:artemiog at mac.com>

Hi, Giuseppe,

Thanks a lot for your most informative reply. I’ll definitely switch to python39, as you suggested. But I am not sure how exactly to proceed, since I suspect that my botched installation of numpy, scipy, matplotlibs and jupyter may have broken something. Right now “port select —list” outputs the following:

Name       Selected  Options
====       ========  =======
cython     cython37  cython37 cython39 none
gcc        none      mp-gcc11 none
ipython    none      py37-ipython py39-ipython none
ipython3   none      py37-ipython py39-ipython none
llvm       none      mp-llvm-10 mp-llvm-9.0 none
mypy       none      mypy37 none
pip        pip37     pip37 none
pip2       none      none
pip3       none      pip37 none
pygments   none      py37-pygments py39-pygments none
python     python37  python27-apple python37 none
python3    python37  python37 none
wxWidgets  none      wxWidgets-3.0 none

I have installed both python3.7 and python3.9, although the latter is inactive:

artemio at imac ~ % port installed python\*   
The following ports are currently installed:
  python-mode.el @1.0_0 (active)
  python3_select @0.0_2 (active)
  python37 @3.7.12_0 (active)
  python39 @3.9.7_0
  python_select @0.3_9 (active)

I have also 83 py37-* packages installed and active, vs 67 py39-* ones, also active (probably because the scientific libraries are only installed in their 3.7 variants), including both py37-jupyter and py39-jupyter:

artemio at imac ~ % port installed py\*-jupyter
The following ports are currently installed:
  py-jupyter @1.0.0_1
  py37-jupyter @1.0.0_1 (active)
  py39-jupyter @1.0.0_1 

So my questions are:

1. Should I activate python39 and decativate python37 before installing the 3.9 versions fo numpy, scipy and matplotlib? Can both be active at the same time after that, or should I keep 3.7 inactive for good (or unistall it)?

2. Should I install (say) py-numpy or more specifically py39-numpy?

3. Is it OK if the 3.7 versions of the py-* package are active throughout this installation process (and afterwards), or should I also deactivate them?

4. Will "jupyter notebook” automatically find the scientific libraries I’m going to install, or should I do something else (like, e.g., create an environment)?

Again, I apologize for my ignorance (I’m coming from Mathematica, but I would like to try python out because many of my colleagues now use it).


Artemio Gonzalez Lopez
artemiog at mac.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-users/attachments/20211004/059e2e57/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4474 bytes
Desc: not available
URL: <http://lists.macports.org/pipermail/macports-users/attachments/20211004/059e2e57/attachment.bin>

More information about the macports-users mailing list