Χρήση τόσο της Python 2.x όσο και της Python 3.x στο IPython Notebook

Χρησιμοποιώ σημειωματάρια IPython και θα ήθελα να μπορώ να επιλέξω να δημιουργήσω ένα σημειωματάριο python 2.x ή 3.x στο IPython.

Αρχικά είχα το Anaconda. Με το Anaconda έπρεπε να αλλάξει μια παγκόσμια μεταβλητή περιβάλλοντος για να επιλέξετε ποια έκδοση python θέλετε και στη συνέχεια μπορούσε να ξεκινήσει το IPython. Αυτό δεν ήταν αυτό που έψαχνα και έτσι απεγκατέστησα το Anaconda και τώρα έχω δημιουργήσει τη δική μου εγκατάσταση χρησιμοποιώντας MacPorts και PiP. Φαίνεται ότι εξακολουθώ να πρέπει να χρησιμοποιώ

port select --set python <python version> 

για να εναλλάσσω μεταξύ python 2.x και 3.x. το οποίο δεν είναι καλύτερο από τη λύση του anaconda.

Υπάρχει τρόπος να επιλέγετε ποια έκδοση python θέλετε να χρησιμοποιήσετε μετά την εκκίνηση ενός σημειωματάριου IPython, κατά προτίμηση με την τρέχουσα MacPorts κατασκευή μου;

Η ιδέα εδώ είναι να εγκαταστήσετε πολλαπλούς πυρήνες ipython. Εδώ υπάρχουν οδηγίες για το anaconda. Αν δεν χρησιμοποιείτε το anaconda, πρόσθεσα πρόσφατα οδηγίες χρησιμοποιώντας καθαρά το virtualenvs.

Anaconda >= 4.1.0

Από την έκδοση 4.1.0, το anaconda περιλαμβάνει ένα ειδικό πακέτο nb_conda_kernels που ανιχνεύει περιβάλλοντα conda με πυρήνες σημειωματάριου και τα καταχωρεί αυτόματα. Αυτό κάνει τη χρήση μιας νέας έκδοσης python τόσο εύκολη όσο και τη δημιουργία νέων περιβαλλόντων conda:

conda create -n py27 python=2.7 ipykernel
conda create -n py36 python=3.6 ipykernel

Μετά από μια επανεκκίνηση του jupyter notebook, οι νέοι πυρήνες είναι διαθέσιμοι μέσω του γραφικού περιβάλλοντος. Σημειώστε ότι τα νέα πακέτα πρέπει να εγκατασταθούν ρητά στα νέα περιβάλλοντα. Η ενότητα Managing environments στα έγγραφα του conda's παρέχει περισσότερες πληροφορίες.

Χειροκίνητη καταχώρηση πυρήνων

Οι χρήστες που δεν θέλουν να χρησιμοποιήσουν το nb_conda_kernels ή εξακολουθούν να χρησιμοποιούν παλαιότερες εκδόσεις του anaconda μπορούν να χρησιμοποιήσουν τα παρακάτω βήματα για να καταχωρήσουν χειροκίνητα τους πυρήνες ipython.

ρυθμίστε το περιβάλλον python2.7:

conda create -n py27 python=2.7
conda activate py27
conda install notebook ipykernel
ipython kernel install --user

ρυθμίστε το περιβάλλον python3.6:

conda create -n py36 python=3.6
conda activate py36
conda install notebook ipykernel
ipython kernel install --user

Μετά από αυτό θα πρέπει να είστε σε θέση να επιλέξετε μεταξύ python2 και python3 όταν δημιουργείτε ένα νέο σημειωματάριο στο περιβάλλον εργασίας.

Επιπλέον, μπορείτε να περάσετε τις επιλογές --name και --display-name στο ipython kernel install αν θέλετε να αλλάξετε τα ονόματα των πυρήνων σας. Δείτε ipython kernel install --help για περισσότερες πληροφορίες.

Σχόλια (37)

Με μια τρέχουσα έκδοση του Notebook/Jupyter, μπορείτε να δημιουργήσετε έναν πυρήνα Python3. Μετά την εκκίνηση μιας νέας εφαρμογής σημειωματάριου από τη γραμμή εντολών με Python 2 θα πρέπει να δείτε μια καταχώρηση "Python 3" στο αναπτυσσόμενο μενού "New". Αυτό σας δίνει ένα σημειωματάριο που χρησιμοποιεί την Python 3. Έτσι μπορείτε να έχετε δύο σημειωματάρια δίπλα-δίπλα με διαφορετικές εκδόσεις Python.

Οι λεπτομέρειες

  1. Δημιουργήστε αυτόν τον κατάλογο: mkdir -p ~/.ipython/kernels/python3

  2. Δημιουργήστε αυτό το αρχείο ~/.ipython/kernels/python3/kernel.json με αυτό το περιεχόμενο:

     {
         "display_name": "IPython (Python 3)",
         "language": "python",
         "argv": [
             "python3",
             "-c", "from IPython.kernel.zmq.kernelapp import main; main()",
             "-f", "{connection_file}&quot,
         ],
         "codemirror_mode": {
             "version": 2,
             "name": "ipython&quot,
         }
     }
  3. Κάντε επανεκκίνηση του διακομιστή σημειωματάριου.

  4. Επιλέξτε "Python 3" από το αναπτυσσόμενο μενού "New".

  5. Εργασία με ένα σημειωματάριο Python 3

  6. Επιλέξτε "Python 2" από το αναπτυσσόμενο μενού "New".

  7. Εργαστείτε με ένα σημειωματάριο Python 2

Σχόλια (8)
Λύση

Υπάρχει μια λύση που μου επιτρέπει να διατηρήσω την εγκατάσταση MacPorts ρυθμίζοντας το kernelspec της Ipython.

Απαιτήσεις:

  • Το MacPorts είναι εγκατεστημένο στο συνηθισμένο κατάλογο /opt.
  • Η python 2.7 εγκαθίσταται μέσω των macports.
  • Η python 3.4 εγκαθίσταται μέσω των macports
  • Η Ipython εγκαθίσταται για την python 2.7
  • Η Ipython εγκαθίσταται για την python 3.4

Για την python 2.x:

$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
$ sudo ./ipython kernelspec install-self

Για python 3.x:

$ cd /opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin
$ sudo ./ipython kernelspec install-self

Τώρα μπορείτε να ανοίξετε ένα σημειωματάριο Ipython και στη συνέχεια να επιλέξετε ένα σημειωματάριο python 2.x ή python 3.x.

[]]1

Σχόλια (5)