On which interpreter is used, you can control this with (IIRC) something like

port select --set python3 python3.6

port select --set python2 python2.7

port select --set python python2

# or "port select --set python python3" if you like

It's most flexible to say #!/usr/bin/env python2 or #!/usr/bin/env python3 in scripts (rather than, say, #!/opt/local/bin/python or #!/usr/bin/env python), as this ensures the right major version, and will use an enabled virtualenv's copy of the interpreter. #!/opt/local/bin/python3 would work too.

Don't forget there's also /usr/bin/python and /usr/bin/python2.7. These are best avoided.

The Apple-provided build of Python is installed in /System/Library/Frameworks/Python.framework and /usr/bin/python, respectively. You should never modify or delete these, as they are Apple-controlled and are used by Apple- or third-party software. Remember that if you choose to install a newer Python version from python.org, you will have two different but functional Python installations on your computer, so it will be important that your paths and usages are consistent with what you want to do.
https://docs.python.org/2/using/mac.html

Russell

On 27/04/17 14:38, Russell Jones wrote:
In short, most stuff works with 2 and 3, and you should use 3. You can install both, they're independent. virtualenvs are your friend. Also, "import this" if you haven't already :)

In full, it's quite complex. See https://wiki.python.org/moin/Python2orPython3

For most features and least hassle, use 3 and ignore 2 if you can. If you have old 2 code of your own, have a look at http://python-future.org/

Stuff being 2 only is a bit of a red flag. It's likely unmaintained or has architectural or testing problems such that it can't be ported. Some newer stuff is 3 only-- typically to rely on new 3 only features like asyncio. 2 and 3 stuff is so because of some effort by the developers to make it so.

Russell

On 26/04/17 20:59, Michael wrote:
What is involved in switching from python 27 to python 36?

I've been using python 27 for a while. I've run into a problem with youtube-dl needing a newer python.

But I don't know what I need to do to safely update. It's not like python2 is a different program than python3 (same "python" in both cases), and as I understand it, not everything written for P2 is compatible with P3.

So what's the proper way to upgrade?
Or is there a way to have both installed at the same time? (but then ... !#/usr/bin/env python ...)

---
Entertaining minecraft videos
http://YouTube.com/keybounce

_______________________________________________
macports-users mailing list
macports-users@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-users

_______________________________________________
macports-users mailing list
macports-users@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-users

_______________________________________________
macports-users mailing list
macports-users@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-users

Reply via email to