#python #python-3.x
Вопрос:
Вот с чем я сталкиваюсь:
(.venv) PS C:Users<redacted>onedrivedevpythoncodekb4> py kb4.py
Traceback (most recent call last):
File "C:Usershanawayconedrivedevpythoncodekb4kb4.py", line 7, in <module>
from dateutil.parser import parse
ModuleNotFoundError: No module named 'dateutil'
Однако:
(.venv) PS C:Users<redacted>onedrivedevpythoncodekb4> py
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from dateutil.parser import parse
>>> quit()
Инструкции по импорту в kb4.py являются следующие:
from dateutil.parser import parse
from os import getcwd, mkdir
from os.path import exists
from sys import exit, stdout
from time import sleep, strftime
import json
import logging
import pandas as pd
import requests
Если это имеет значение, вот мой список pip:
Package Version
------------------ ---------
astroid 2.6.5
backcall 0.2.0
certifi 2021.5.30
charset-normalizer 2.0.3
colorama 0.4.4
debugpy 1.4.1
decorator 5.0.9
idna 3.2
ipykernel 6.0.3
ipython 7.25.0
jedi 0.18.0
jupyter-client 6.1.12
jupyter-core 4.7.1
lazy-object-proxy 1.6.0
numpy 1.21.1
pandas 1.3.1
parso 0.8.2
pickleshare 0.7.5
prompt-toolkit 3.0.19
Pygments 2.9.0
pylint 2.9.6
python-dateutil 2.8.2
pywin32 301
pyzmq 22.1.0
requests 2.26.0
setuptools 56.0.0
six 1.16.0
toml 0.10.2
tornado 6.1
traitlets 5.0.5
urllib3 1.26.6
wcwidth 0.2.5
wrapt 1.12.1
Я пытался:
- pip установить python-dateutil —принудительная переустановка
- удаление и переустановка python-dateutil не увенчались успехом.
Есть идеи, что еще я мог бы попробовать?
Комментарии:
1. Оператор импорта является первой строкой,
kb4.py
но ошибка исходит из строки 7. Вы уверены, что предоставили общий доступ к правильному файлу?2. @Selcuk да, первые 6 строк-это комментарии.
3. Чтобы убедиться, что используемая вами версия python верна, вы можете распечатать версию python: печать(«sys.version_info»). Как упоминалось в ответах, подобные вещи могут быть вызваны различными версиями python.
Ответ №1:
Ваш вопрос действительно интересен! Я мог бы воспроизвести ваш сценарий и получить тот же результат, используя библиотеку pandas для тестирования:
(myvenv) RANGO@RANGO-PC D:myvenv
> py testpandas.py
Traceback (most recent call last):
File "D:myvenvtestpandas.py", line 3, in <module>
import pandas as pd
ModuleNotFoundError: No module named 'pandas'
(myvenv) RANGO@RANGO-PC D:myvenv
> py
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>>
Вы используете py для запуска Python, поэтому, просмотрев документацию по запуску Python, я нашел подсказку о том, что может происходить в вашей ситуации.
Вы говорите, что перед неудачным импортом есть 6 строк комментариев. Возможно, один из этих комментариев-это строка shebang, которая перенаправляет на другую установку Python в вашей среде.
Мой тестовый сценарий выглядит следующим образом:
#! C:msys64mingw64binpython
#
import pandas as pd
s = pd.Series([1, 3, 5, 12, 6, 8])
print(s)
Там у вас есть одна строка shebang и строка комментария перед строкой импорта. Строка shebang перенаправляет выполнение и среду на другую установку python, отличную от «стандартной», как показывает следующий тест.
(myvenv) RANGO@RANGO-PC D:myvenv
> C:msys64mingw64binpython -V
Python 3.9.7
(myvenv) RANGO@RANGO-PC D:myvenv
> py -V
Python 3.9.0
Комментарии:
1. Вот оно что! Отличная находка
![]()