Я установил python3.8:
sudo apt install python3.8
Я теперь хочу установить зернышко для python 3.8
python3.8 -m pip install pip
Requirement already satisfied: pip in /usr/lib/python3/dist-packages (18.1)
Но зернышко 3 3.7
pip3 -V
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
Так, чтобы, например:
pip3 install pyinotify
Requirement already satisfied: pyinotify in ./.local/lib/python3.7/site-packages (0.9.6)
Попытка импортировать pyinotify к python3.8 сценарию бросает a ModuleNotFound
ошибка
sudo apt install python3-pip
или python3.8-pip
Позвольте системе управлять Вашей версией Python.
Чтобы удостовериться, что Вы используете корректное зернышко, используйте его следующим образом:
python3.8 -m pip install pyinotify
Brett Cannon, один из разработчиков ядра Python, просто недавно опубликовал статью блога об этой теме: https://snarky.ca/why-you-should-use-python-m-pip/
Это все сказало, Вы обычно хотите установить пакеты Python в виртуальную среду, не в системе Python.
https://realpython.com/python-virtual-environments-a-primer/
Вы попытались использовать Miniconda или Anaconda?
Короче говоря это - хороший способ протестировать различные версии Python, и Вы не должны будете волноваться о том, чтобы портить Ваш системный Python (проекты/установщики, которые используют ключевое слово python
).
source ~/miniconda3/bin/activate
intel
и conda-forge
найти пакеты там: conda config --add channels intel && conda config --add channels conda-forge
conda create -n py38 python=3.8 pip
pip-19.3.1-py38_0
conda activate py38
python
в то время как в этой среде, это будет использовать интерпретатор, Вы настраиваете. Кроме того, pip install
и conda install
будет направлен к Вашему py38
среда до Вас conda deactivate
или переключатель.Вот вывод, когда я работал conda create -n py38 python=3.8 pip
.
Сбор метаданных пакета (current_repodata.json): сделанная среда Решения:готово
Комплексный план
местоположение среды:/home/mikkeyboi/miniconda3/envs/py38
добавленный / обновленные спецификации: - зернышко - python=3.8
Следующие пакеты будут загружены:
package | build ---------------------------|----------------- certifi-2019.9.11 | py38_0 147 KB conda-forge pip-19.3.1 | py38_0 1.9 MB conda-forge python-3.8.0 | h357f687_3 39.0 MB conda-forge setuptools-41.6.0 | py38_1 628 KB conda-forge wheel-0.33.6 | py38_0 35 KB conda-forge ------------------------------------------------------------ Total: 41.7 MB
Следующие НОВЫЕ пакеты будут УСТАНОВЛЕНЫ:
_libgcc_mutex pkgs/main/linux-64:: _libgcc_mutex-0.1-main
сертификаты CA
conda-forge/linux-64:: ca-certificates-2019.9.11-hecc5488_0 certifi
conda-forge/linux-64:: certifi-2019.9.11-py38_0 libffi
conda-forge/linux-64:: libffi-3.2.1-he1b5a44_1006 libgcc-ng
pkgs/main/linux-64:: libgcc-ng-9.1.0-hdf63c60_0 libstdcxx-ng
pkgs/main/linux-64:: libstdcxx-ng-9.1.0-hdf63c60_0 ncurses
conda-forge/linux-64:: ncurses-6.1-hf484d3e_1002 openssl
conda-forge/linux-64:: зернышко openssl-1.1.1d-h516909a_0
conda-forge/linux-64:: pip-19.3.1-py38_0 python
conda-forge/linux-64:: python-3.8.0-h357f687_3 readline
conda-forge/linux-64:: readline-8.0-hf8c457e_0 setuptools
conda-forge/linux-64:: setuptools-41.6.0-py38_1 sqlite
conda-forge/linux-64:: sqlite-3.30.1-hcee41ef_0 tk
conda-forge/linux-64:: колесо tk-8.6.9-hed695b0_1003
conda-forge/linux-64:: wheel-0.33.6-py38_0 xz
conda-forge/linux-64:: xz-5.2.4-h14c3975_1001 zlib
conda-forge/linux-64:: zlib-1.2.11-h516909a_1006Продолжить двигаться ([y]/n)? y
Загрузка и Извлечение Python Пакетов 3.8.0 | 39,0 МБ |
############################### | 100% setuptools-41.6.0 | 628 КБ | ##################################### | 100% побеждают 19.3.1| 1,9 МБ | ##################################### | 100%-е колесо 0.33.6 | 35 КБ |
############################### | 100% certifi-2019.9.11 | 147 КБ | ##################################### | 100%-я Подготовкатранзакция: сделанная транзакция Проверки: сделанная Выполняющаяся транзакция:готово
Я также сделал pip install pyinotify
обратиться к Вашему запросу импорта, python -c "import pyinotify; print(pyinotify.__version__)"
дал мне 0.9.6
.
Я решил эту проблему сам, потому что не мог найти простого способа исправить это.
Поскольку сначала установлен Python3.7, а Python3.8 не собирается заменять старый пакет при его установке.
Попытайтесь найти расположение pip3
$ which pip3
В моем случае (macOS) он находится в / usr / local / bin / pip3
$ cd /usr/local/bin
Если вы правильно установили python3.8 pip, вы должны увидеть pip3.8
Если да, попробуйте удалить его.
$ sudo rm pip
И скопируйте pip3.8 с новым именем, pip3
$ sudo cp pip3.8 pip3
Вот и все !!!
Я не уверен, что это идеальное решение, но оно работает для меня.
У меня была такая же проблема. Я думаю, что лучше всего вызывать pip из установки python, что заставляет вас указывать конкретную версию python, в которой устанавливается библиотека, т.е.
python3.8 -m pip install pyinotify
В качестве альтернативы вы можете изменить установку python по умолчанию, чтобы pip3 ссылался на python3.8. Для управления версиями Python вы можете использовать update-alternatives:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2
Теперь вам нужно будет выбрать версию по умолчанию. Запустите следующее и нажмите 2
sudo update-alternatives --config python3
pip3 теперь должен ссылаться на ваш пакет python3.8