Error running pipenv pycharm

Pipenv is a tool that provides all necessary means to create a virtual environment for your Python project. It automatically manages project packages through the Pipfile file as you install or uninstall packages.

Pipenv is a tool that provides all necessary means to create a virtual environment for your Python project. It automatically manages project packages through the Pipfile file as you install or uninstall packages.

Pipenv also generates the Pipfile.lock file, which is used to produce deterministic builds and create a snapshot of your working environment. This might be particularly helpful for security sensitive deployment, when project requirements and packages versions are critical. For more details about pipenv, see project documentation at pipenv.pypa.io.

To use Pipenv with PyCharm, you need to implement several preparation steps.

Install Pipenv

  1. Run the following command to ensure you have pip installed in your system:

    $ pip --version

    You should expect to receive a system response indicating the pip version. If no pip is discovered, install it as described in the Installation Instructions. Alternatively, you can download and install Python from http://python.org.

  2. Install pipenv by running the following command:

    $ pip install --user pipenv

    When installation completes, you will see the following message:

    System response on successful pipenv installation

  3. For your convenience, you might add the user base’s binary directory to your PATH environmental variable. If you skip this procedure, PyCharm will prompt you to specify the path to the pipenv executable when adding a pipenv environment.

    1. Run the following command:

      $ py -m site --user-site

      A sample output can be:

      C:UsersjetbrainsAppDataRoamingPythonPython37site-packages

    2. Replace site-packages with Scripts in this path to receive a string for adding to the PATH variable, for example:

      $ setx PATH "%PATH%;C:UsersjetbrainsAppDataRoamingPythonPython37Scripts"

    1. Run the following command to find the user base’s binary directory:

      $ python -m site --user-base

      An example of output can be

      /Users/jetbrains/.local (macOS) or /home/jetbrains/.local (Linux)

    2. Add bin to this path to receive a string for adding to the ~/.bashrc file, for example:

      $ export PATH="$PATH:/Users/jetbrains/.local/bin"

    3. Run the following command to make the changes effective:

      $ source ~/.bashrc

    4. Ensure you have enabled bashrc in your bash_profile.

At any time you can alter the specified path to the pipenv executable in the project settings. In the Settings dialog (Ctrl+Alt+S), navigate to , and type the target path in the Path ot Pipenv executable field.

After the preparation steps are done, you can use pipenv to create a virtual environment for new or existing projects.

Set pipenv for a new Python project

  1. Initiate creating a new Python project as described in Creating a pure Python project.

  2. In the New Project dialog, click Expand to expand the Python Interpreter node, select New environment using, and from the list of available virtual environments select Pipenv.

    Select Pipenv when creating a new Python project

  3. In the left-hand pane of the Add Python Interpreter dialog, select Pipenv Environment.

  4. If you have added the user base binary directory to your PATH environment variable, you don’t need to set any additional options: the path to the pipenv executable will be autodetected.

    Path to the pipenv executable is autodetected

  5. Click OK to complete the task.

  6. If you don’t have the base binary directory in PATH, PyCharm shows an error message: Pipenv executable is not found. Discover the proper executable path as described in the pipenv installation procedure and enter the target string in the Pipenv executable field, for example: C:UsersjetbrainsAppDataRoamingPythonPython37Scriptspipenv.exe (Windows) or /Users/jetbrains/.local/bin/pipenv (macOS).

    Click OK to save the changes and complete the task.

You can also set up pipenv for any of your earlier created projects.

Configure pipenv for an existing Python project

  1. Do one of the following:

    • Click the Python Interpreter selector and choose Add New Interpreter.

    • Press Ctrl+Alt+S to open Settings and go to . Click the Add Interpreter link next to the list of the available interpreters.

    • Click the Python Interpreter selector and choose Interpreter Settings. Click the Add Interpreter link next to the list of the available interpreters.

  2. Select Add Local Interpreter.

  3. In the left-hand pane of the Add Python Interpreter dialog, select Pipenv Environment.

    Adding a Pipenv environment

  4. Choose the base interpreter from the list, or click Choose the base interpreter and find the desired Python executable in your file system.

  5. If you have added the base binary directory to your PATH environmental variable, you don’t need to set any additional options: the path to the pipenv executable will be autodetected.

    If the pipenv executable is not found, follow the pipenv installation procedure to discover the executable path, and then paste it in the Pipenv executable field.

  6. Click OK to complete the task.

Once all the steps are done, the new pipenv environment is set for your project and the packages listed in the Pipfile are installed.

If you open a project with a Pipfile file added but no any interpreter configured, PyCharm offers you to use Pipenv environment.

Pipenv inspection

If you select this option, PyCharm sets pipenv for you automatically. Alternatively, you can click Configure Python interpreter to follow the standard workflow.

Similarly, when you open a project with a Pipfile file in PyCharm for the very first time, for example, by checking it out from the Version Control, the Pipenv virtual environment will be configured automatically.

When you have set the Pipenv virtual environment as a Python interpreter, all available packages are added from the source defined in Pipfile . The packages are installed, removed, and updated in the list of the packages through pipenv rather than through pip.

PyCharm can create a Pipenv environment for your project based on the project requirements recorded in the Pipfile.

Create an environment using the Pipfile

  1. Open any directory with your source files that contains the Pipenv file: select from the main menu and choose the directory.

  2. If no any environment has been created for this project, PyCharm suggests creating it:

    Create a pipenv environment using the requirements.txt file

  3. If PyCharm cannot autodetect the pipenv executable, specify a path to it. Click OK to complete the task.

Once you click OK, PyCharm creates an environment and installs all the required packages.

Note that if you ignore a suggestion to create a pipenv environment, PyCharm won’t create a Python interperter for your project. So, any time when you open a .py file, you’ll see the warning with the options for configuring a project interpreter:

Warning with options for configuring a project interpreter

For any of the configured Python interpreters (but Docker-based), you can:

  • Manage interpreter paths
  • Install, uninstall, and upgrade packages

Last modified: 14 December 2022

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

  • Чем хорош Pipenv
  • Установка
  • Пример использования
  • Создаем виртуальную среду

  • Устанавливаем пакеты

  • Запускаем скрипты

  • Настройка pipenv в PyCharm
  • Команды pipenv
  • Pipenv и Docker
  • Конфигурирование pipenv
  • Стоит ли использовать Pipenv?

Pipenv — менеджер зависимостей для Python-проектов. С его помощью можно создавать виртуальные среды и управлять зависимостями приложений. Pipenv решает ряд проблем, которые возникали при использовании pip, virtualenv и requirements.txt.

Данный инструмент аналогичен npm у NodeJS, или composer у PHP, и является официально рекомендуемым менеджером зависимостей для Python. Подробнее о том, кому он будет полезен и как им пользоваться, рассмотрим ниже.

Чем хорош Pipenv

Рано или поздно, каждый разработчик сталкивается с проблемой контроля версий пакетов pip и настройкой виртуального окружения. С помощью Pipenv вы можете:

  • Управлять окружениями (env);
  • Управлять пакетами: устанавливать, удалять, обновлять (pip);
  • Устанавливать детерминированный набор пакетов (Pipfile.lock).

Можно забыть про pip и virtualenv.
Вам больше не нужно использовать pip и virtualenv по отдельности. В pipenv этот функционал реализован «из коробки».

Requirements.txt больше не нужен.
Для своей работы менеджер использует 2 файла:
Pipfile (по сути замена requirements.txt) и Pipfile.lock (связывает версии пакетов, тем самым обеспечивая дополнительную безопасность).

Когда вы запускаете проект с Pipenv, он автоматически создает виртуальную среду для текущего проекта, даже если вы еще не используете ее. Pipenv управляет зависимостями, отказавшись от привычного requirements.txt, и заменяя его на новый документ под названием Pipfile. Когда вы устанавливаете библиотеку с помощью Pipenv, файл Pipfile для проекта автоматически обновляется с указанием сведений об этой установке, включая информацию о версии, расположение хранилища Git, путь к файлу и другую информацию.

Пример файла Pipfile:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
questionary = "*"

[requires]
python_version = "3.7"

Ваше приложение может зависеть от конкретной версии библиотеки, а эта библиотека может зависеть от конкретной версии другой библиотеки. Если производить настройку вручную, во всем этом очень просто запутаться 🤷. Pipenv создан, чтобы облегчить эту задачу. Он отслеживает дерево взаимозависимостей вашего приложения в файле с именем Pipfile.lock В свою очередь, Pipfile.lock также проверяет, используются ли корректные версии зависимостей.

Пример файла Pipfile.lock:

{
"_meta": {
"hash": {
"sha256": "bb84bcf0496484d8725eb675984e488d0..."
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.7"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"questionary": {
"hashes": [
"sha256:7d4f98c9e5a1c0cd7e45a2c13959d5df9de...",
"sha256:87ffc9dab940ec962c54fe2eec3a4eecb10..."
],
"index": "pypi",
"version": "==1.4.0"
}
},
"develop": {}
}

Pipenv удобен, когда над проектом работают несколько разработчиков. Рассмотрим простой пример — компания ведет разработку своего корпоративного сайта. Мария работает над вкладкой «Отчеты», Иван — над вкладкой «Чат».

  • Для того чтобы отчеты создавались быстрее, Мария решает обновить некоторые питон-библиотеки.
  • В течение 2-х дней она разрабатывает новый функционал для отчетов.
  • Мария фиксирует изменения в git репозитории, но забывает запустить pip freeze. Файл requirements.txt остается в репозитории со старыми версиями библиотек.
  • Иван затягивает из репозитория изменения Марии, и внезапно выясняется, что его вкладка «Чат» стала выпадать с ошибкой.
  • Помимо этого, CI сборка тоже сломалась 😢

Требуется время, чтобы понять, что проблема в файле requirements.txt, где находятся старые версии библиотек.

Если бы Иван и Мария использовали Pipenv, Pipfile был бы автоматически обновлен и включен в коммит Марии. Они бы сэкономили время и завершили свой продукт быстрее. Вот что делает Pipenv таким важным.

Возможность создавать собственные шорткаты.
Pipenv позволяет создавать собственные шорткаты (сокращения) в секции
[scripts] файла Pipfile:

[scripts]
print_hello = "python -c "print('Hello')""

Теперь в консоли вы можете вызвать шорткат командой pipenv run print_hello

Автоматизация рутинных задач.
Больше не придется тратить время на выполнение рутинных задач, выискивая причины отсутствия синхронизации и возникновения ошибок в версиях. Всю рутинную работу pipenv берет на себя:

  • автоматически генерирует Pipfile;
  • автоматически удаляет/добавляет записи в Pipfile при установке/удалении пакетов;
  • автоматически создает virtualenv;
  • автоматически подгружает данные из .env файлов и т.д.

Установка

Самый простой вариант — установка с помощью pip.

pip install pipenv

Для Linux и MacOS есть альтернативный способ установки:

Для MacOS:

brew install pipenv

Для Debian:

sudo apt install pipenv

Для Fedora:

sudo dnf install pipenv

Для FreeBSD:

pkg install py36-pipenv

После установки, вы можете фактически забыть о pip — pipenv по сути заменяет pip и virtualenv.

Пример использования

Рассмотрим простой пример использования pipenv.

Создаем виртуальную среду

Для инициализации виртуальной среды Python 3, выполните команду:

pipenv shell

Если виртуальной среды еще не существует, она будет создана.

💭 Также вы можете принудительно создать среду Python 3 или Python 2. Для этого нужно выполнить команды pipenv --three или pipenv --two.

Устанавливаем пакеты

Далее можно установить сторонний пакет. Существует 3 варианта установки:

Вариант #1. Указываем пакет, который нужно установить

pipenv install scrapy

Установится последняя версия пакета.
При этом в
Pipfile добавится запись scrapy = "*"

Вариант #2. Не указываем пакет (установка пакетов из Pipfile)

pipenv install

Установятся все пакеты из Pipfile и обновится Pipfile.lock

Вариант #3. Не указываем пакет (установка пакетов из Pipfile.lock)

pipenv sync

Установятся все пакеты из Pipfile.lock

Запускаем скрипты

Запустить python-скрипты можно несколькими способами:

Способ #1. Активируем виртуальное окружение командой pipenv shell, далее выполняем python script-name.py

Способ #2. Запустить скрипт сразу внутри оболочки virtualenv можно командой:

pipenv run python script-name.py

Настройка pipenv в PyCharm

Процесс настройки pipenv в PyCharm:

  1. В настройках откройте вкладку «Project Interpreter» — File > Settings > Project: ProjectName > Project Interpreter.
  2. Нажмите на шестеренку рядом с выпадающим списком и выберите «Add«.
  3. В списке слева выберите «Pipenv Environment«.
  4. Далее вы можете создать новое окружение «New environment» или использовать существующее «Existing environment«.

После того как все шаги выполнены, для текущего проекта устанавливается новая среда pipenv и устанавливаются пакеты, перечисленные в Pipfile.

Если вы открываете какой-либо проект с добавленным файлом Pipfile, но в нем не настроен интерпретатор, PyCharm предложит вам использовать среду Pipenv. Если вы выберете эту опцию, PyCharm автоматически установит для вас pipenv.

Если PyCharm покажет сообщение об ошибке: Pipenv executable is not found, введите правильный путь к исполняемому файлу в настройках «Pipenv Environment«, например: C:UsersjetbrainsAppDataRoamingPythonPython37Scriptspipenv.exe (Windows).

Команды pipenv

Общие:

  • pipenv shell — активация виртуального окружения;
  • exit — выход из виртуального окружения;
  • pipenv check — проверка на наличие уязвимостей безопасности.

Управление пакетами:

  • pipenv install — установка всех пакетов из Pipfile;
  • pipenv install scrapy==1.8.0 — установит фиксированную версию пакета;
  • pipenv install selenium --dev — установит selenium как пакет только для разработки;
  • pipenv install --system — установка зависимостей в родительскую систему;
  • pipenv uninstall scrapy — удаление пакета;
  • pipenv uninstall --all — удаление всех установленных пакетов в виртуальной среде.

Pipfile.lock:

  • pipenv lock — генерация Pipfile.lock;
  • pipenv sync — установка пакетов из Pipfile.lock;
  • pipenv clean — удаление из virtualenv всех пакетов, которых нет в Pipfile.lock.

Информация:

  • pipenv --where — путь до текущий проект;
  • pipenv --venv — путь до virtualenv;
  • pipenv --py — путь до интерпретатора;
  • pipenv graph — отображение графа зависимостей.

Pipenv и Docker

Способ #1. Простой способ использовать pipenv в сборке Docker — экспортировать файл require.txt. Вы можете сделать это вне сборки Docker, и просто передать полученный файл в систему управления версиями, а затем использовать Dockerfile. Выполнить это можно следующим образом:

pipenv lock --requirements > requirements.txt

Плюс в том, что Dockerfile не нужно ничего знать о pipenv. Иначе, это потребовало бы обновлять файл require.txt при каждом обновлении Pipfile.lock.

В качестве альтернативы можно выполнить экспорт в самой сборке:

FROM python:3.7
RUN pip install pipenv
COPY Pipfile* /tmp
RUN cd /tmp && pipenv lock --requirements > requirements.txt
RUN pip install -r /tmp/requirements.txt
COPY . /tmp/myapp
RUN pip install /tmp/myapp
CMD flask run exampleapp:app

Способ #2. Второй вариант связан с использованием дополнительных флагов при установке пакетов.

pipenv install --deploy --system

--deploy — pipenv выдаст ошибку если Pipfile.lock устарел, вместо того, чтобы сгенерировать новый Pipfile.lock файл.

--system — устанавливать зависимости в родительскую систему.

Рассмотрим пример Dockerfile для развертывания Flask приложения:

FROM python:3.7

RUN pip3 install pipenv

WORKDIR /usr/src/app

COPY Pipfile ./
COPY Pipfile.lock ./

RUN set -ex && pipenv install --deploy --system

COPY . .

EXPOSE 8000

CMD [ "gunicorn", "-b0.0.0.0:8000", "wsgi:app" ]

Конфигурирование pipenv

Pipenv дает возможность конфигурировать свое поведение с помощью переменных окружения (Environment Variables). Просто создайте переменную и pipenv обнаружит её. Вот некоторые их них:

  • PIPENV_VENV_IN_PROJECT — создаст виртуальное окружение .venv в папке с проектом;
  • PIPENV_YES — автоматически соглашаться со всеми диалогами;
  • PIPENV_DONT_LOAD_ENV — не загружать файл .env;
  • PIPENV_INSTALL_TIMEOUT — максимальное время ожидания установки пакета (сек.);
  • PIPENV_MAX_SUBPROCESS — количество подпроцессов, используемых во время установки;
  • PIPENV_PIPFILE — путь до файла Pipfile.

Полный список переменных можно посмотреть через pipenv --envs:

Список всех доступных переменных окружения в pipenv.

Официальная документация по конфигурированию pipenv — «Configuration With Environment Variables«. Расшифровка некоторых переменных тут.

Стоит ли использовать Pipenv?

Определенно да! 🎉 Pipenv сведет всю работу по управлению пакетами и виртуальным окружением в одну консоль, решит проблему с версионированием пакетов и добавит новый, весьма приятный функционал.

мне нужен krakenex в проекте, поэтому я импортирую его с

import krakenex

у меня есть одна версия krakenex в

/ пользователи/X/библиотека/Python/3.6/lib / python / site-packages

. Когда я выполняю скрипт и

print(krakenex)

он показывает мне путь, упомянутый выше.

в будущем я хочу использовать модули из пакетов, которые я установил, например

pipenv install krakenex

С приоритетом.

как я удалось это сделать? Достаточно ли добавить путь виртуальной среды к пути sys или есть более элегантный способ?

3 ответов


вы должны указывать интерпретатор проекта на virtualenv python bin. Таким образом, в PyCharm File->Settings->Project: ProjectName->Project Interpreter, затем должны отображаться окна, показывающие интерпретатор проекта.

Project Interpreter

рядом с верхним раскрывающимся списком находится шестеренка, и вы захотите добавить Local и перейти к virtualenvs python bin. Что-то вроде virtualenvs/virtualenv_name/bin/python. Тогда ваш проект должен указывать на нужное место.

49

автор: ForFunAndProfit


чтобы добавить больше разъяснений о том, как настроить PyCharm с pipenv на данный момент:

  1. выполнить в каталоге проекта

    pipenv —venv

сохранить вывод, вы будете ссылаться на этот путь позже

  1. в PyCharm Откройте настройки проекта, а затем выберите интерпретатор проекта
    Preferences > Project Interpreter

  2. нажмите Добавить интерпретатор Python > системный интерпретатор > выберите Python Интерпретатор и вставьте вывод из первой команды, добавив /bin/python в конец.
    enter image description here

обратите внимание, что вам нужно будет использовать командную строку для установки любых пакетов, так как PyCharm в настоящее время не поддерживает pipenv в своих инструментах управления пакетами. Однако, у меня не было проблем с этим методом.

13

автор: Lawrence Coleman


PyCharm изначально поддерживает pipenv с версии 2018.2. PyCharm 2018.2 автоматически создает pipenv при открытии проекта с помощью Pipfile и упрощает создание новых проектов с помощью pipenvs.

для существующих проектов

как уже говорилось ранее, для существующих проектов с Pipfile, когда вы открываете файл Python, PyCharm спросит вас, Хотите ли вы установить зависимости от Pipfile.lock.

pipenv for existing projects

для новых проектов

для нового проекта вы можете использовать панель интерпретатора проекта для создания Pipenv на основе интерпретатора проекта.

enter image description here


Понравилась статья? Поделить с друзьями:
  • Error running lua method update
  • Error running lua method mouseevent как исправить
  • Error running lua method draw
  • Error running javac exe compiler
  • Error running game could not find steam exe to launch half life