I have recently installed Python 3.8.0 alongside Python 3.7.4.
I have some virtual environments (created using python -m venv <directory>
that are based on v3.7.4. How do I update them to use v3.8.0?
Do I need to create a new virtual environment and reinstall the dependencies, scripts, etc.?
Note: There are some existing Q&A's (such as this) that deal with the older virtualenv
package/tool. I'm specifically asking about the new built-in venv
module, which is a standard built-in to Python since v3.3 and has some differences from virtualenv
.
It's still possible to use a different python version with venv . Instead of providing an argument, like with virtualenv , you just be sure to use the appropriate python version to run venv . Example with py the python launcher: py -3.3 -m venv my_venv will create a virtual environment using python 3.3.
Creating a Python Virtual Environment virtualenv supports older Python versions and needs to be installed using the pip command. In contrast, venv is only used with Python 3.3 or higher and is included in the Python standard library, requiring no installation.
I guess what you're looking for is the --upgrade
parameter.
python -m venv --help
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
[--upgrade] [--without-pip] [--prompt PROMPT]
ENV_DIR [ENV_DIR ...]
Creates virtual Python environments in one or more target directories.
positional arguments:
ENV_DIR A directory to create the environment in.
optional arguments:
-h, --help show this help message and exit
--system-site-packages
Give the virtual environment access to the system
site-packages dir.
--symlinks Try to use symlinks rather than copies, when symlinks
are not the default for the platform.
--copies Try to use copies rather than symlinks, even when
symlinks are the default for the platform.
--clear Delete the contents of the environment directory if it
already exists, before environment creation.
--upgrade Upgrade the environment directory to use this version
of Python, assuming Python has been upgraded in-place.
--without-pip Skips installing or upgrading pip in the virtual
environment (pip is bootstrapped by default)
--prompt PROMPT Provides an alternative prompt prefix for this
environment.
You need to run it with the targeted python version, for example in this case:
python3.8 -m venv --upgrade <path_to_dir>
Assuming that python3.8 is the name of your python 3.8.0 executable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With