![Maven Central Adds Sigstore Signature Validation](https://cdn.sanity.io/images/cgdhsj6q/production/7da3bc8a946cfb5df15d7fcf49767faedc72b483-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
UPDATE: This module is unnecessary. I now recommend using the one-liner import pip; pip.main(['install', 'module_name_here'])
module to install modules from the interactive shell rather than pipfromrepl
. This code is easier to remember and works on Python versions 2.7 and 3.5+. The only downside is that it doesn't work on Python 3.4, in which case, use the instructions below. Here in 2023, however, the number of students working from 3.4 is near nonexistent so this is unlikely to be an issue.
Pipfromrepl runs pip to install packages from the Python interactive shell aka REPL.
If you are leading a programming workshop and want to avoid headaches of running pip from students' machines (with all their possible environment configurations), pipfromrepl provides a single set of instructions to quickly get packages correctly installed.
The benefit of pipfromrepl is that the user doesn't need to know how to navigate the command-line or have their PATH environment variables set up. If multiple versions of Python are installed, pipfromrepl uses the pip module associated with the currently running interactive shell. The goal of pipfromrepl is to reduce the number of steps that students and beginners need to take to get Python packages installed on their computer.
Pipfromrepl is meant to assist students and instructors. It's probably a good idea to not rely on it in production environments.
To install pipfromrepl from the REPL, copy and paste the following into the REPL:
import subprocess, sys; subprocess.run([sys.executable, '-m', 'pip', 'install', 'pipfromrepl'])
Pipfromrepl works on Python 2.7 and Python 3.4+. Linux users may need to install pip separately by running sudo apt-get install python3-pip
from a Terminal.
After installing pipfromrepl, run import pipfromrepl
:
>>> import pipfromrepl
Call pipfromrepl.install()
to install a package from PyPI:
>>> pipfromrepl.install('pymsgbox')
Collecting pymsgbox
Using cached PyMsgBox-1.0.9-py3-none-any.whl
Installing collected packages: pymsgbox
Successfully installed pymsgbox-1.0.9
Call pipfromrepl.list()
to list the installed packages:
>>> pipfromrepl.list()
Package Version Editable project location
----------- ------- -------------------------
pip 22.3.1
pipfromrepl 0.1.0 C:\github\pipfromrepl
PyMsgBox 1.0.9
setuptools 65.5.1
wheel 0.37.1
Call pipfromrepl.uninstall()
to uninstall a package:
>>> pipfromrepl.uninstall('pymsgbox')
Found existing installation: PyMsgBox 1.0.9
Uninstalling PyMsgBox-1.0.9:
Would remove:
c:\users\al\.virtualenvs\pipfromrepl-fxbqt5ki\lib\site-packages\pymsgbox-1.0.9.dist-info\*
c:\users\al\.virtualenvs\pipfromrepl-fxbqt5ki\lib\site-packages\pymsgbox\*
Proceed (Y/n)? Successfully uninstalled PyMsgBox-1.0.9
The uninstall()
function has a confirm
keyword argument you can set to True
to force the user to manually enter Y to proceed.
The user_install()
function passes the '--user'
argument to pip.
You can install a specific version just like pip: pipfromrepl.install('pymsgbox==1.0.9')
You can pass pip commands to pip directly with the pip()
functions:
>>> import pipfromrepl
>>> pipfromrepl.pip('install pymsgbox')
Collecting pymsgbox
Using cached PyMsgBox-1.0.9-py3-none-any.whl
Installing collected packages: pymsgbox
Successfully installed pymsgbox-1.0.9
>>> pipfromrepl.pip('list')
Package Version Editable project location
---------------- ---------- -------------------------
certifi 2022.9.24
distlib 0.3.6
filelock 3.8.0
pip 22.3.1
pipenv 2022.11.11
pipfromrepl 0.1.0 C:\github\pipfromrepl
platformdirs 2.5.4
PyMsgBox 1.0.9
setuptools 65.5.1
virtualenv 20.16.7
virtualenv-clone 0.5.7
wheel 0.37.1
>>> pipfromrepl.pip('uninstall pymsgbox')
Found existing installation: PyMsgBox 1.0.9
Uninstalling PyMsgBox-1.0.9:
Would remove:
c:\users\al\.virtualenvs\pipfromrepl-fxbqt5ki\lib\site-packages\pymsgbox-1.0.9.dist-info\*
c:\users\al\.virtualenvs\pipfromrepl-fxbqt5ki\lib\site-packages\pymsgbox\*
Proceed (Y/n)? y
Successfully uninstalled PyMsgBox-1.0.9
FAQs
Run pip to install packages from the Python interactive shell aka REPL.
We found that pipfromrepl demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.