Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. Python
  5. Новый проект на python через venv

Новый проект на python через venv

Запланировано Прикреплена Закрыта Перенесена Python
python
5 Сообщения 2 Постеры 96 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK Не в сети
    kirilljsxK Не в сети
    kirilljsx
    js
    написал в отредактировано
    #1

    Я каждый раз забываю как делать новый проект на python через venv. По этому для себя и для кого-то еще сделаю заметку.

    Возможно эту заметку будут читать новички, по этому начну с банальщины.
    Создаем папку проекта:

    mkdir my_project && cd my_project
    

    Создаем виртуальное окружение:

    python3 -m venv venv
    

    Активируем окружение:

    source venv/bin/activate
    

    Далее приступаем к работе, устанавливаем пакеты и так далее.
    Когда работа завершена деактивируем окружение:

    deactivate
    

    Ну или можно вообще делать все в одну строчку:

    mkdir PROJECT_NAME && cd PROJECT_NAME && python3 -m venv venv && source venv/bin/activate
    

    Меняем имя только проекта.

    1 ответ Последний ответ
    0
    • kirilljsxK Не в сети
      kirilljsxK Не в сети
      kirilljsx
      js
      написал в отредактировано
      #2

      Кстати бывает на WSL иногда простыми командами не обойтись.

      К примеру, мы запустили python3 -m venv venv, но получаем в консоли ошибку:

      Error: Command '['/home/user/project/venv/bin/python3', '-m', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
      

      И даже есть посмотреть через ls -la, всего скорее папка venv будет, но при активации source venv/bin/activate консоль может выдать - -bash: venv/bin/activate: No such file or directory.

      С этим поможет справится следующее:

      rm -rf venv # удаляем папку venv
      python3 -m venv venv --without-pip # запускаем окружение но с флагом, что устанавливаем pip отдельно
      source venv/bin/activate # активируем и проверяем
      
      # качаем pip отдельно и запускаем
      curl https://bootstrap.pypa.io/get-pip.py | python
      

      После этой манипуляции должно все заработать.

      Ну а теперь о самой проблему почему это может возникнуть по крайне мере на Ubunta в WSL.

      С флагом --without-pip venv работает, потому что:
      -Создается только базовая структура виртуального окружения

      • НЕ вызывается модуль ensurepip для установки pip
      • Все файлы создаются нормально, включая activate

      Без флага --without-pip venv падает, потому что:

      • Python по умолчанию пытается установить pip через ensurepip
      • Модуль ensurepip отсутствует или сломан в Ubuntu
      • Процесс прерывается на этапе установки pip
      1 ответ Последний ответ
      0
      • kirilljsxK Не в сети
        kirilljsxK Не в сети
        kirilljsx
        js
        написал в отредактировано kirilljsx
        #3

        Дополню, что возможно такие конфликты могут возникать из-за версий самого питухона.

        К примеру если вы сидели на версии 3.10, а перешли на 3.13, то стоит установить явно:

        apt install python3.13-venv
        

        А после проделать изначальную манипуляцию, только уже с указание для нужной версии:

        # Удали старую папку
        rm -rf venv
        
        # Создай venv с Python 3.13
        python3.13 -m venv venv
        
        # Активируй
        source venv/bin/activate
        

        Питон конечно прикольный, но вот вся эта вазнья просто вымораживает… В том же js (спасибо за npm), ты точно знаешь что вот у тебя папка там есть node_modules и что в этой папке конкретно твой проект с твоими локальными пакетами и средой разработки.

        Почему так происходит

        В Ubuntu каждая версия Python требует свой пакет venv:
        Python 3.10 → python3.10-venv
        Python 3.11 → python3.11-venv
        Python 3.12 → python3.12-venv
        Python 3.13 → python3.13-venv

        1 ответ Последний ответ
        0
        • JspiJ Не в сети
          JspiJ Не в сети
          Jspi
          js
          написал отредактировано
          #4

          нужны дополнения для windows

          kirilljsxK 1 ответ Последний ответ
          0
          • JspiJ Jspi

            нужны дополнения для windows

            kirilljsxK Не в сети
            kirilljsxK Не в сети
            kirilljsx
            js
            написал отредактировано
            #5

            @Jspi ну это под WSl либо на Ubuntu сразу, зачем вообще тебе виндоус ?

            1 ответ Последний ответ
            0

            Категории

            • Главная
            • Новости
            • Фронтенд
            • Бекенд
            • Языки программирования

            Контакты

            • Сотрудничество
            • info@exlends.com
            • Наш чат
            • Наш ТГ канал

            © 2024 - 2025 ExLends, Inc. Все права защищены.

            Политика конфиденциальности
            • Войти

            • Нет учётной записи? Зарегистрироваться

            • Войдите или зарегистрируйтесь для поиска.
            • Первое сообщение
              Последнее сообщение
            0
            • Лента
            • Категории
            • Последние
            • Метки
            • Популярные
            • Пользователи
            • Группы