Правильный порядок шагов при запуске нового проекта Python в Windows

Я внимательно изучал документацию pip, Jupyter, Python, пытаясь понять, как эти компоненты взаимодействуют в одном проекте в ОС Windows.

  1. Где в дереве папок и когда мне нужно tutorial_env\Scripts\activate?
  2. Где в дереве папок и когда мне нужно pip install [package name]?
  3. Где в дереве папок и когда мне нужно jupyter notebook?

В моем текущем дереве папок tutorial_env является родительским, а папка Lib и папка моего основного проекта являются дочерними элементами в виртуальной среде. У меня есть pip install [package name] для всех моих пакетов, и я вижу эти файлы в папке Lib. Когда я импортирую их в свой файл main.py в основной папке проекта, первый оператор импорта выдает ModuleNotFoundError: No module named 'numpy'.

Кажется разумным, что мне нужно переставить файлы. Как это делают профессионалы?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы получаете 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 должна автоматически создаваться и сама управлять установленными библиотеками/зависимостями. Просто убедитесь, что вы работаете в активированной среде.

Когда я python -m venv env, он создает папку env с подпапками: Include, Lib, Scripts и файл с именем pyvenv.cfg. Когда я pip install [package name], пакет автоматически переносится в папку Lib. Когда я запускаю where python, он возвращает путь, который находится далеко от папки моего проекта. Однако когда я запускаю python --version из папки моего проекта, он дает мне версию.

Vesper Annstas 04.05.2024 03:14

**РЕДАКТИРОВАНИЕ: where python включает папку моего проекта после активации файла venv. Мне не знакома структура папок, которую вы предоставили. Является ли src стандартным расположением моих файлов кода? Где будут находиться пакеты в этой структуре?

Vesper Annstas 04.05.2024 03:27

src — это всего лишь пример того, где вы можете разместить файлы Python; они не обязательно должны там находиться, но это общая структура. Установленные пакеты будут находиться в каталоге env\Lib\site-packages, хотя обычно вам не нужно напрямую взаимодействовать с этим каталогом.

Jordan 04.05.2024 03:59

Перейдите в папку 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)"

Jordan 04.05.2024 03:59

Другие вопросы по теме

Как мне исправить мою игру «Монти Пайтон» (C#), чтобы спрятать приз за случайной дверью и сделать так, чтобы обнаруженная дверь была случайной, а не дверь с призом?
Сценарий Powershell выдает ошибку (класс 80040154 не зарегистрирован) только тогда, когда он выполняется из кода развертывания. Почему?
Ошибка при запуске dir/p в терминале VSCode – эквивалент dir/p в PowerShell?
«мусор в конце строки» при сборке файла .s, скомпилированного из файла C++ с использованием Clang и LLVM, но работает с файлом C
CosmosDB не разрешает бессерверные возможности NoSQL, он говорит, что я должен использовать PerformanceMode
ANSI в терминале (Windows 10)
Медленная производительность std::fstream
Всякий раз, когда я пытаюсь загрузить код в свою идею Smowcode; он продолжает постоянно загружаться, и уведомление об угрозе Bearfoos всегда появляется
Как сопоставить CapsLock с Esc и Ctrl в Autohotkey?
Служба COMplus в контейнере Windows