Czy możemy zmienić wersję tłumacza Pythona, że IPython używa?

Wiem, że jest Ipython i Ipython3, ale problem jest, IPython używa Python2.7, a IPython3 korzysta z Python3.4.2 i nie widzę sposobu, aby to zmienić.

Co jeśli chciałem, aby IPython użyć, który kiedykolwiek wersja Pythona tłumacza, chciałem, czy mogę to zrobić w ten sposób?

Chcę, aby IPython użył najnowszej wersji Pythona, Python3.6. Czy mogę to zrobić w ten sposób?

5
Scarass 28 czerwiec 2017, 06:30

4 odpowiedzi

Najlepsza odpowiedź

Wygląda na to, że znalazłem rozwiązanie.

Musisz edytować plik, który uruchamia IPython. W Linuksie możesz wprowadzić go z: {x0}}. Po wejściu do pliku zmieniasz linię Shebang do tego, co kiedykolwiek piython, który chcesz. I katalogi zawierające moduły Python3.4 muszą być dodane do zmiennej $ Pythonpath.

Co to jest linia shebang? Pierwsza linia w pliku reprezentuje ścieżkę do tłumacza Pythona, który zostanie użyty.

Dzięki @Code_byter.

2
Scarass 28 czerwiec 2017, 09:36

Dla mnie było to łatwiejsze niż wyobrażam sobie. Zrobiłem vim /usr/bin/ipython3 i znalazłem następujący skrypt bash:

#! /bin/sh

VERSION="3"

if [ ! -f /usr/bin/python$VERSION ]
then
[...]

Aby użyć Pythona wersja 3.6.2 zmieniłem linię VERSION=3 do VERSION=3.6. Należy pamiętać, że ustawienie zmiennej VERSION do 3.6.2 nie działa na moim komputerze.

1
Acsor 22 wrzesień 2017, 20:39

Po pierwsze, proszę sprawdzić, co oznacza wersję (według wersji, ścieżka tłumacza) używa Pythona IPython za pomocą polecenia which ipython. Po znaniu ścieżki otwórz plik i opublikuj zawartość tutaj.

Spróbuj sprawić, że to wygląda:

#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from IPython import start_ipython

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(start_ipython())

Pierwsza linia przypuszczalnie zapewnia, że używany jest lokalny tłumacz Pythona. Powszechnie nazywany linią Shebang.

Jeśli jesteś w systemie Windows, spróbuj polecenia where ipython.

2
hridayns 28 czerwiec 2017, 04:02

Modyfikowanie rozproszonego pliku powinno być ostatnim ośrodkiem. Sugeruję tę alternatywę za pomocą Python3.6 na Ubuntu 17.04 jako przykład:

python3.6 -m pip install IPython # lots of output, make IPython available to script ipython3
python3.6 `which ipython3`
Python 3.6.1 (default, Mar 22 2017, 06:17:05) 
[GCC 6.3.0 20170321] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
7
mcarifio 20 lipiec 2017, 03:17