#python #networkx
Вопрос:
Я установил networkx с pip
помощью этой команды:
[JohnRambo@Machine ~]$ pip install networkx
Просто чтобы показать вам, используя pip install networkx
, он говорит, что он уже установлен:
Requirement already satisfied: networkx in ./anaconda3/lib/python3.7/site-packages (2.6.2)
Однако, когда я пытаюсь импортировать networkx в python
import networkx as nx
Я получил это сообщение:
ModuleNotFoundError: No module named 'networkx'
Кроме того, также путем попытки с (pytest networkx)
[JohnRambo@Machine ~]$ pytest networkx
Я получаю ошибку file not found: networkx
, как показано ниже:
============================= test session starts ==============================
platform linux -- Python 3.7.7, pytest-3.8.0, py-1.6.0, pluggy-0.7.1
rootdir: /home/JohnRambo, inifile:
plugins: remotedata-0.3.0, openfiles-0.3.0, doctestplus-0.1.3, arraydiff-0.2
========================= no tests ran in 0.01 seconds =========================
ERROR: file not found: networkx
Есть идеи, как это исправить?
Дополнительная информация, если она может быть полезной:
[JohnRambo@Machine ~]$ python -V
Python 3.7.7
[JohnRambo@Machine ~]$ python3 -V
Python 3.7.7
[JohnRambo@Machine ~]$ pip --version
pip 21.1.3 from /home/JohnRambo/anaconda3/lib/python3.7/site-packages/pip (python 3.7)
[JohnRambo@Machine ~]$ pip3 --version
pip 21.1.3 from /home/JohnRambo/anaconda3/lib/python3.7/site-packages/pip (python 3.7)
[JohnRambo@Machine ~]$ which python
~/anaconda3/bin/python
[JohnRambo@Machine ~]$ which python3
~/anaconda3/bin/python3
[JohnRambo@Machine ~]$ which pip
~/anaconda3/bin/pip
[JohnRambo@Machine ~]$ which pip3
~/anaconda3/bin/pip3
[JohnRambo@Machine ~]$ which pytest
~/anaconda3/bin/pytest
Комментарии:
1. вы проверили, что
pip
принадлежит к той же средеpython
? в случае использованияwhich pip
иwhich python
для тестирования2.Спасибо @Andrea! Похоже, они принадлежат к одному и тому же env:
[JohnRambo@Machine ~]$ which python ~/anaconda3/bin/python
[JohnRambo@Machine ~]$ which python3 ~/anaconda3/bin/python3
[JohnRambo@Machine ~]$ which pip ~/anaconda3/bin/pip
[JohnRambo@Machine ~]$ which pip3 ~/anaconda3/bin/pip3
3. Привет, пожалуйста, добавьте дополнительную информацию в исходное сообщение в виде фрагментов кода, а не в виде комментариев. Спасибо
Ответ №1:
У меня есть своего рода ответ, но я не думаю, что он действительно хорош…
Следуя руководству с именем NoModuleNamed, я сначала проверил sys.executable
в python
import sys
print(sys.executable)
что дало это:
/bin/python3
Затем я попытался установить networkx там, используя инструкции, приведенные как в руководстве с именем NoModuleNamed, так и в руководстве по установке networkx:
[JohnRambo@Machine ~]$ /bin/python3 -m pip install networkx[default]
Просто для информации, я получил это (после установки):
Requirement already satisfied: networkx[default] in ./.local/lib/python3.6/site-packages (2.5.1)
WARNING: networkx 2.5.1 does not provide the extra 'default'
Requirement already satisfied: decorator<5,>=4.3 in ./.local/lib/python3.6/site-packages (from networkx[default]) (4.4.2)
Теперь команда import networkx
внутри python не выдает мне никаких ошибок, но
- если я проверю установку networkx с терминала
[JohnRambo@Machine ~]$ pytest networkx
, я все равно получуERROR: file not found: networkx
, и - эта версия networkx-это то
2.5.1
, что мне бы хотелось2.6
.
Как только я попытаюсь обновить networkx с помощью команды
[JohnRambo@Machine ~]$ /bin/python3 -m pip install --upgrade networkx[default]
Я получил это сообщение:
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: networkx[default] in ./.local/lib/python3.6/site-packages (2.5.1)
WARNING: networkx 2.5.1 does not provide the extra 'default'
Requirement already satisfied: decorator<5,>=4.3 in ./.local/lib/python3.6/site-packages (from networkx[default]) (4.4.2)
Можно ли по-прежнему устанавливать внутри /bin/python3
или это неверная практика?
Как я могу обновить свой networkx?