This article is about a case when `pipenv install` throws `--system is intended to be used for pre-existing Pipfile installation` in pypa pipenv
  • 01-Feb-2023
Lightrun Team
Author Lightrun Team
Share
This article is about a case when `pipenv install` throws `--system is intended to be used for pre-existing Pipfile installation` in pypa pipenv

`pipenv install` throws `–system is intended to be used for pre-existing Pipfile installation` in pypa pipenv

Lightrun Team
Lightrun Team
01-Feb-2023

Explanation of the problem

Technical Problem Description

When executing the pipenv install command in a new project that was created with the same directory path as a previously deleted pipenv project, an error is generated. The expected result is for pipenv to handle this situation without error.

Steps to Reproduce the Error:

  1. Create a new pipenv project by executing the following commands:
$ mkdir foo
$ cd foo
$ pipenv install
  1. Delete the existing pipenv project by executing the following commands:
$ cd ..
$ rm -rf foo
  1. Create a new project again using the same directory path by executing the following commands:
$ mkdir foo
$ cd foo
$ pipenv install

Upon execution of the last command, the following error will be generated:

Usage: pipenv install [OPTIONS] [PACKAGES]...
ERROR:: --system is intended to be used for pre-existing Pipfile installation, not installation of specific packages. Aborting.
$ pipenv --support

Troubleshooting with the Lightrun Developer Observability Platform

Getting a sense of what’s actually happening inside a live application is a frustrating experience, one that relies mostly on querying and observing whatever logs were written during development.
Lightrun is a Developer Observability Platform, allowing developers to add telemetry to live applications in real-time, on-demand, and right from the IDE.

  • Instantly add logs to, set metrics in, and take snapshots of live applications
  • Insights delivered straight to your IDE or CLI
  • Works where you do: dev, QA, staging, CI/CD, and production

Start for free today

Problem solution for `pipenv install` throws `–system is intended to be used for pre-existing Pipfile installation` in pypa pipenv

To resolve the error “–system is intended to be used for pre-existing Pipfile installation”, one solution is to remove the virtual environment created by the previous pipenv project before creating a new one. This can be done by executing the following command:

$ pipenv --rm

After removing the virtual environment, a new pipenv project can be created without encountering the error by executing the following commands:

$ mkdir foo
$ cd foo
$ pipenv install

Another solution is to use a different directory path for the new pipenv project. This will prevent the issue from occurring in the first place.

Other popular problems with pypa pipenv

Problem: Dependency Hell

One of the most common problems with Pipenv is dependency hell, where users face conflicts between different dependencies in their projects. The main cause of this problem is the management of version constraints between dependencies, leading to compatibility issues and breakages. This can result in unexpected results when trying to install or run packages.

Solution:

To resolve dependency hell in Pipenv, users should regularly keep track of the dependencies in their projects, and update them when necessary. By using the Pipenv lock command, users can freeze the versions of all dependencies in the project to avoid version conflicts. Additionally, using Pipenv graph allows users to visualize the dependencies and their relationships, making it easier to identify and resolve compatibility issues.

Problem: Performance and Speed Issues

Another common issue with Pipenv is performance and speed issues when installing packages. This is often caused by slow network connections or large numbers of dependencies in a project. This can lead to long wait times when installing packages, or even installation failures if the process times out.

Solution:

To resolve performance and speed issues with Pipenv, users can try increasing the timeout value with the --timeout option when running the Pipenv install command. Additionally, users can utilize a local package cache by setting the PIP_CACHE_DIR environment variable to store frequently used packages, reducing the need to download them from the network each time.

Problem: Difficulty with Virtual Environments

Finally, some users may experience difficulties with managing virtual environments in Pipenv. This can include difficulties creating virtual environments, or issues with switching between environments.

Solution:

To resolve these issues, users can use the Pipenv shell command to create and enter a virtual environment for their project. This will automatically create and activate the virtual environment, and will ensure that the correct environment is used when running commands. Additionally, users can use the Pipenv install --dev option to install packages in the development environment, which can help separate development and production dependencies, reducing conflicts and making it easier to manage the environment.

A brief introduction to pypa pipenv

Pypa Pipenv is a package management tool for Python projects. It allows users to manage the dependencies and packages required for a project in a virtual environment, helping to isolate the project from the system-wide Python environment and reducing the risk of conflicts between different projects. Pipenv uses a combination of pip and virtualenv to provide a complete solution for managing packages and dependencies, including the installation, management, and activation of virtual environments.

Pipenv provides a number of advantages over traditional pip-based approaches, including better dependency management, improved security through the use of virtual environments, and enhanced ease of use with features such as automatic virtual environment activation and automatic creation of a Pipfile for the project. Pipenv also makes it easier for users to share projects and dependencies with others, as the Pipfile.lock file provides a comprehensive list of all the required dependencies, their versions, and their hashes, ensuring that the same environment can be recreated on another machine. This makes it an attractive solution for both individual developers and larger development teams, as it provides a consistent and repeatable way to manage dependencies and packages.

Most popular use cases for pypa pipenv

  1. Dependency Management: Pipenv can be used to manage dependencies and packages required for a Python project. It integrates pip and virtualenv to provide a complete solution for managing dependencies, including the installation and management of virtual environments. This allows users to isolate the dependencies for a project, reducing the risk of conflicts between different projects.
  2. Package Management: Pipenv provides a simple and efficient way to install packages, as well as manage their versions and dependencies. This helps to ensure that the right packages and versions are used, and reduces the risk of breaking code or encountering compatibility issues. Pipenv also provides an easy way to install packages in development and production environments, using the Pipenv install --dev command.
# Example of installing a package using Pipenv
$ pipenv install requests
  1. Reproducibility: Pipenv helps to ensure reproducibility of a Python project by recording the exact versions of all dependencies and packages used in the project. This is achieved by creating a Pipfile.lock file, which provides a comprehensive list of all the required dependencies, their versions, and their hashes. This makes it easier to share projects and dependencies with others, as the same environment can be recreated on another machine, ensuring that the project runs consistently.
Share

It’s Really not that Complicated.

You can actually understand what’s going on inside your live applications.

Try Lightrun’s Playground

Lets Talk!

Looking for more information about Lightrun and debugging?
We’d love to hear from you!
Drop us a line and we’ll get back to you shortly.

By submitting this form, I agree to Lightrun’s Privacy Policy and Terms of Use.