Reputation: 95
I have 2 pyenv versions installed
pyenv versions
system
* 2.7 (set by ../.python-version)
3.5.3
when I am creating a virtualenv
inside my project directory, I want it to create a virtualenv
for the current pyenv
python version 2.7
but when i'm creating one using mkvirtualenv whatever
the virtual env is creating a python3 virtualenv
ll ~/.virtualenvs/mobile2/bin
total 5800
-rw-r--r-- 1 ohadperry staff 2.0K Sep 6 10:59 activate
-rw-r--r-- 1 ohadperry staff 1.0K Sep 6 10:59 activate.csh
-rw-r--r-- 1 ohadperry staff 2.1K Sep 6 10:59 activate.fish
-rw-r--r-- 1 ohadperry staff 1.1K Sep 6 10:59 activate_this.py
-rwxr-xr-x 1 ohadperry staff 266B Sep 6 10:59 easy_install
-rwxr-xr-x 1 ohadperry staff 266B Sep 6 10:59 easy_install-3.5
-rwxr-xr-x 1 ohadperry staff 149B Sep 6 10:59 get_env_details
-rwxr-xr-x 1 ohadperry staff 238B Sep 6 10:59 pip
-rwxr-xr-x 1 ohadperry staff 238B Sep 6 10:59 pip3
-rwxr-xr-x 1 ohadperry staff 238B Sep 6 10:59 pip3.5
-rw-r--r-- 1 ohadperry staff 71B Sep 6 10:59 postactivate
-rw-r--r-- 1 ohadperry staff 73B Sep 6 10:59 postdeactivate
-rwxr-xr-x 1 ohadperry staff 68B Sep 6 10:59 preactivate
-rw-r--r-- 1 ohadperry staff 74B Sep 6 10:59 predeactivate
-rwxr-xr-x 1 ohadperry staff 2.8M Sep 6 10:58 python
-rwxr-xr-x 1 ohadperry staff 2.3K Sep 6 10:59 python-config
lrwxr-xr-x 1 ohadperry staff 6B Sep 6 10:58 python3 -> python
lrwxr-xr-x 1 ohadperry staff 6B Sep 6 10:58 python3.5 -> python
-rwxr-xr-x 1 ohadperry staff 245B Sep 6 10:59 wheel
Upvotes: 4
Views: 3176
Reputation: 193
I was having a similar problem, and I believe the accepted answer doesn't reflect the question since it's been edited. I do believe my solution solves the stated problem as it is right now.
The original question was how to create a virtualenv in selected python version explicitly
, for which Somil's answer is correct.
However, for those who wish to create a virtualenv using a python version installed by pyenv, here is my answer.
I was trying to create a virtualenv using Python 3.6.9
, having 3.10.7
installed system-wide.
I had no luck using the system installed virtualenv
. I tried virtualenv -p ~/.pyenv/versions/<version>/bin/python env
, and although it creates the folders and scripts, it presented errors regarding wheel packages.
What worked was installing virtualenv
from the pyenv
installed version and using it to create the env
.
$ pyenv install <version>
$ pyenv shell <version>
virtualenv
using pip
from that version$ pip3 install virtualenv
virtualenv
to create the env
.$ virtualenv -p python3 env
Upvotes: 0
Reputation: 20341
If you're using pyenv
, I would recommend building a pyenv
controlled virualenv
(make sure pyenv-virtualenv
is installed first)
$ pyenv virtualenv 2.7 <your new env>
Which you can then switch to this virtualenv using pyenv
$ pyenv local <your new env>
or
$ pyenv shell <your new env>
Upvotes: 7