Я внимательно изучал документацию pip, Jupyter, Python, пытаясь понять, как эти компоненты взаимодействуют в одном проекте в ОС Windows.
tutorial_env\Scripts\activate?pip install [package name]?jupyter notebook?В моем текущем дереве папок tutorial_env является родительским, а папка Lib и папка моего основного проекта являются дочерними элементами в виртуальной среде. У меня есть pip install [package name] для всех моих пакетов, и я вижу эти файлы в папке Lib. Когда я импортирую их в свой файл main.py в основной папке проекта, первый оператор импорта выдает ModuleNotFoundError: No module named 'numpy'.
Кажется разумным, что мне нужно переставить файлы. Как это делают профессионалы?






Если вы получаете ModuleNotFoundError: No module named 'numpy' , это обычно означает, что Python не ищет установленные модули в правильном месте или вы их не установили. Это может произойти, если виртуальная среда, в которой были установлены пакеты, не активирована или если вы случайно используете другой интерпретатор Python при попытке запустить свой код. Чтобы проверить, активирована ли среда в запущенном вами скрипте, вы можете посмотреть префикс командной строки или использовать where python в терминале. Эта команда должна указать вам путь к используемому вами интерпретатору Python.
Что касается ваших вопросов, все эти команды следует запускать из корневого/родительского каталога Tutorial_env. Сначала попав в родительский каталог, из командной строки это будет выглядеть так. Замените Desktop\...\tutorial_env на путь к родительской папке.
cd Desktop\...\tutorial_env
Затем создайте виртуальную среду. Я предполагаю, что вы уже это сделали. Env — это имя виртуальной среды.
python -m venv env
Активируйте среду.
env\Scripts\activate
Затем вы можете установить свои зависимости/библиотеки в эту виртуальную среду.
Структура папок может выглядеть примерно так:
tutorial_env/
├── env/ # Virtual environment
├── src/ # Source files like Python scripts
│ └── main.py
├── notebooks/ # Jupyter notebooks
└── analysis.ipynb
Я не думаю, что каталог Lib, который вы упомянули, нужен, среда Python должна автоматически создаваться и сама управлять установленными библиотеками/зависимостями. Просто убедитесь, что вы работаете в активированной среде.
**РЕДАКТИРОВАНИЕ: where python включает папку моего проекта после активации файла venv. Мне не знакома структура папок, которую вы предоставили. Является ли src стандартным расположением моих файлов кода? Где будут находиться пакеты в этой структуре?
src — это всего лишь пример того, где вы можете разместить файлы Python; они не обязательно должны там находиться, но это общая структура. Установленные пакеты будут находиться в каталоге env\Lib\site-packages, хотя обычно вам не нужно напрямую взаимодействовать с этим каталогом.
Перейдите в папку env\Scripts и убедитесь, что там есть файл python.exe. Попробуйте запустить этот небольшой скрипт непосредственно в PowerShell с активированной виртуальной средой — слева должен быть зеленый значок (env), указывающий на то, что он активен. Запустите эту команду, которая должна вывести местоположение используемого вами интерпретатора Python: python -c "import sys; print(sys.executable)". Вы также можете запустить небольшой скрипт непосредственно в терминале, который должен работать, если вы в виртуальной среде и установили numpy: python -c "import numpy as np; a=np.array([2,2]); print(a)"
Когда я
python -m venv env, он создает папкуenvс подпапками:Include,Lib,Scriptsи файл с именемpyvenv.cfg. Когда яpip install [package name], пакет автоматически переносится в папкуLib. Когда я запускаюwhere python, он возвращает путь, который находится далеко от папки моего проекта. Однако когда я запускаюpython --versionиз папки моего проекта, он дает мне версию.