在我的项目中,我使用virtualenv
创建了ENV
:
(ENV) bora-MBP:testDemo01 ldl$ ls
ENV db.sqlite3 manage.py templates test01 testDemo01
您看到我有一个活跃的项目虚拟环境。
在我的项目的一个python文件中:
import six
print(six.PY3) # print True
我使用来检查我项目的python版本,那里显示它使用了Python3
。
但是我进入ENV/lib
,只显示python2.7
:
(ENV) bora-MBP:testDemo01 ldl$ cd ENV/lib/
(ENV) bora-MBP:lib ldl$ ls
python2.7
没有python3
,这是我的第一个问题。
我的第二个问题是,为什么我的项目将使用ENV虚拟环境?我可以在哪里查看配置?
EDIT-01
在我的第一个问题中:
我知道我现在在项目中使用python3
,可以使用six.PY3
进行检查或其他方式,但是为什么我创建虚拟环境,在目录下只有python2.7
目录ENV/lib/
?
我的第二个问题:
我们知道我的项目将使用ENV环境来运行程序,但是为什么呢?我的项目是否有使用此环境的默认设置(dependencies
,packages
等)?是否有任何配置文件供我们检查(清楚地指出我的项目testDemo01将使用ENV
作为运行环境)?
答案 0 :(得分:2)
第一个问题:
请使用python --version
在您的虚拟环境中检查python版本,以确保它是否为python 3。在命令行中使用whereis python
,检查是否有多个python版本。
第二个问题:
要简化虚拟环境管理过程,请安装virtualenvwrapper pip install virtualenvwrapper-win
。
然后,您可以通过“编辑系统环境变量”来检查和更改您的ENV目录。使用您的require路径更改或创建“ WORKON_HOME”变量。
根据您的EDIT-01:
virtualenv -p path_of_python3 envname
用python3创建virtualenv。您可以在命令行中使用whereis python
找到所有python的路径。pip freeze
检查依赖性。答案 1 :(得分:0)
第一个问题,在python2.7/
下的ENV/lib/
是由于创建virtualenv方法引起的,如果您这样创建ENV:
virtualenv -p python3 ./ENV
在python3.x/
下应该有ENV/lib/
。
第二个问题:
是否有任何配置文件供我们检查(清楚地指出我的项目testDemo01将使用ENV作为运行环境)?
出于源原因,您应该检查ENV/bin/active
bash文件,在激活虚拟环境时,项目仍要使用该文件:
VIRTUAL_ENV="/Users/aircraft/Desktop/TestPython/Demo/venv"
export VIRTUAL_ENV
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH
# unset PYTHONHOME if set
if ! [ -z "${PYTHONHOME+_}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
unset PYTHONHOME
fi
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`) $PS1"
fi
export PS1
fi
您看到,执行active
bash时,将导出VIRTUAL_ENV
,并将其添加到PATH
中,并取消设置PYTHONHOME(如果已设置)。这就是项目将使用virtualenv的原因。