Raspbian Buster - какую Python версию я использую? - PullRequest
0 голосов
/ 29 февраля 2020

Я использую Raspberry Pi 4 и использую последнюю версию Raspbian Buster. Я пытаюсь обновить Python. В настоящее время, когда я запускаю python --version в терминале, я получаю следующий вывод:

pi@raspberrypi:~ $ python --version
Python 2.7.16

Просто из любопытства я попытался загрузить пакет, который мне нужно использовать в будущем, чтобы увидеть, где находится место установки будет. Вот что вызывает некоторые опасения:

pi@raspberrypi:~ $ pip install simpleaudio
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting simpleaudio
  Downloading https://www.piwheels.org/simple/simpleaudio/simpleaudio-1.0.4-cp37-cp37m-linux_armv7l.whl (2.1 MB)
     |████████████████████████████████| 2.1 MB 3.1 MB/s 
Installing collected packages: simpleaudio
Successfully installed simpleaudio-1.0.4

Когда я пытаюсь установить пакет снова (чтобы увидеть место установки):

Requirement already satisfied: simpleaudio in ./.local/lib/python3.7/site-packages (1.0.4)

Я вижу, что он установлен в этом конкретный путь. Как его можно сохранить в Python 3.7, когда я использую старую версию? Это был один из первых тестов после бесплатной установки Raspbian Buster. Как это работает? Технически ли я все еще работаю Python 2.7.16 или я в действительности работаю Python 3.7?

1 Ответ

0 голосов
/ 29 февраля 2020

На только что установленном Debian Buster у меня есть pip и pip3 (обе версии 18.1, но связаны с Python2 или 3), а также версии python с пип-связью и их команды python (версия 2.7.16) и python3 (версия 3.7.3).

pip -V
pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python2.7)

В комментарии вы сказали, что ваша команда pip указывает на python3 .7 - и поэтому вы устанавливаете пакеты на python3, а не на python2. Я думаю, что это так просто.

Так что вам, вероятно, нужно установить pip для python2 или просто создать виртуальную среду для ваших python2 пакетов.

Если вы предпочитаете использовать Python3 вместо Python2 не нужно много менять. Кажется, что вы можете просто установить свои библиотеки с помощью pip install <library>, а затем вызывать свои Python программы (-ы) с помощью python3 (вместо python (то есть Python2) ). Там вы должны найти библиотеки и иметь возможность вызывать их с помощью import <library name>.

Если у вас все еще есть проблемы с работой import, вы можете посмотреть, находится ли путь к пакетам сайта в пути поиска Ваш интерпретатор:

pi@raspberrypi:~ $ python3
>>> import sys
>>> sys.path

В конце концов, я думаю, все это происходит из-за того, что pip не имеет прав на запись в пакеты сайта:

По умолчанию для установки пользователя, потому что нормальный сайт -пакеты не доступны для записи

Уже есть ответ здесь . Может быть, это также полезно для вас.

...