关于python:Virtualenv创建了一个文件夹,但结果却不是我想要的

Virtualenv created a folder, but the result its not I wanted

本问题已经有最佳答案,请猛点这里访问。

我通过virtualenv命令创建了一个文件夹,但结果不是我想要的。

1
2
3
4
[root@localhost opt]# virtualenv my_env
New python executable in /opt/my_env/bin/**python2.6**
Also creating executable in /opt/my_env/bin/python
Installing setuptools, pip, wheel...done.

我的系统是Centos 6.5。在创建文件夹之前,我将python2.6升级到了python3.6。然后我想创造一个独立的环境来练习姜戈。不幸的是,文件夹中有python2.6,它应该是python3.6。有人能告诉我发生了什么事吗?


I upgraded my python 2.6 to python 3.6

在Python世界中,python 2和python 3是两种不同的东西。所以实际上您所做的是将python 3安装在python 2旁边。现在您的系统既有python 2(可以由命令python运行)也有python 3(可以由命令python3运行)

所以当你运行virtualenv my_env时,它启动了默认的python解释器,即centos 6.x中的python 2,这就是在你的虚拟环境中使用python 2.6的原因。

使用python 3设置虚拟环境

要在虚拟环境中获取python 3解释器,请运行:

1
virtualenv -p python3 my_env


你可以和python3 -m venv env一起去不需要virtualenv

你做了什么

1
virtualenv my_env

正在调用python2 virtualenv命令以准备python2环境。

另外,你应该看看皮彭夫


你试过使用-p选项吗?如:

1
$ virtualenv -p /usr/bin/python3.5 venv


由于您使用的是Linux,并且许多程序将开始使用python3作为默认值,因此可以为python2和3创建一个别名,以便在您的系统中将默认python虚拟地切换为python3。为此,只需将这些行添加到您的~/.bashrc~/.bash_aliases文件中:

1
2
alias python='/usr/bin/python3'
alias python2='/usr/bin/python'

这将使您可以轻松地使用最新的django版本,同时不会中断当前任何python程序的运行。而且很容易撤销。脚本可以从#!/usr/bin/python3#!/usr/bin/python开始,分别直接使用python3或python2。