如何在 Python 中使用 virtualenv 在虚拟环境中本地执行代码?
How do I execute codes locally in a virtual environment using virtualenv in Python?
我先输入了以下代码,
mkdir project #create a directory on current path called project
cd project
virtualenv my_env #create a virtual enviroment called my_env under directory project
my_env\Scripts\activate.bat #activate my_env
然后我尝试了
pip install requests
原来包请求是在本地环境中创建的,即在路径下...project\env\Lib\site-packages,但是,我在 python 教程中看到此代码实际上会在全局创建请求,为了在本地创建请求,需要使用
my_env\Scripts\pip.exe install requests
所以我想知道为什么 pip install requests
在我的案例中也在本地执行?是教程错了吗?您可以参考 http://thepythonguru.com/python-virtualenv-guide/
的教程
当您的操作系统(在本例中为 windows)搜索未指定路径的可执行文件时(如 pip
),它会搜索 [=12= 中的每个目录] 该可执行文件的环境变量(即假设您在
时输入命令 python3
PATH="C:\Python27\bin;C:\Program Files\git\bin;
C:\Program Files (x86)\Java\JDK.0\bin;C:\Python35\bin"
然后命令行将在每个目录中搜索可执行文件名称 python3
。但是,直到搜索最后一个目录后它才会找到可执行文件,然后它将 运行 C:\Python35\bin\python3.exe
.
当您安装虚拟环境(简称 venv)时,会创建一个名为 C:/path/to/my/venv/bin/activate.bat
的脚本,您可以 运行 activate(真是令人惊讶!) venv。除其他事项外,该脚本 将 C:\path\to\my\venv\bin
添加到 PATH
(即设置 PATH="C:\path\to\my\venv\bin;$PATH
,其中美元符号仅表示使用 PATH
变量。
然后,当您 运行 pip install requests
时,命令行开始在 PATH 中搜索 pip 可执行文件。它按顺序尝试条目,所以它在 C:\path\to\my\venv\bin
目录中找到了 pip.exe
,所以实际上你 确实 无意中使用了 C:\path\to\my\venv\bin\pip.exe
当你 运行 pip install requests
。更重要的是,这实际上是 activate.bat
脚本存在的主要目的之一;这样,您不需要指定安装在 venv 中的每个可执行文件的精确路径,而不是使用 C:\path\to\my\venv\bin\python
只要您激活,您就可以使用 python
、 venv。如果您从不 运行 C:\path\to\my\venv\bin\activate.bat
那么 PATH
环境变量将与开始时一样,并且 将 全局安装包(这是不是你想要的)。
我先输入了以下代码,
mkdir project #create a directory on current path called project
cd project
virtualenv my_env #create a virtual enviroment called my_env under directory project
my_env\Scripts\activate.bat #activate my_env
然后我尝试了
pip install requests
原来包请求是在本地环境中创建的,即在路径下...project\env\Lib\site-packages,但是,我在 python 教程中看到此代码实际上会在全局创建请求,为了在本地创建请求,需要使用
my_env\Scripts\pip.exe install requests
所以我想知道为什么 pip install requests
在我的案例中也在本地执行?是教程错了吗?您可以参考 http://thepythonguru.com/python-virtualenv-guide/
当您的操作系统(在本例中为 windows)搜索未指定路径的可执行文件时(如 pip
),它会搜索 [=12= 中的每个目录] 该可执行文件的环境变量(即假设您在
python3
PATH="C:\Python27\bin;C:\Program Files\git\bin;
C:\Program Files (x86)\Java\JDK.0\bin;C:\Python35\bin"
然后命令行将在每个目录中搜索可执行文件名称 python3
。但是,直到搜索最后一个目录后它才会找到可执行文件,然后它将 运行 C:\Python35\bin\python3.exe
.
当您安装虚拟环境(简称 venv)时,会创建一个名为 C:/path/to/my/venv/bin/activate.bat
的脚本,您可以 运行 activate(真是令人惊讶!) venv。除其他事项外,该脚本 将 C:\path\to\my\venv\bin
添加到 PATH
(即设置 PATH="C:\path\to\my\venv\bin;$PATH
,其中美元符号仅表示使用 PATH
变量。
然后,当您 运行 pip install requests
时,命令行开始在 PATH 中搜索 pip 可执行文件。它按顺序尝试条目,所以它在 C:\path\to\my\venv\bin
目录中找到了 pip.exe
,所以实际上你 确实 无意中使用了 C:\path\to\my\venv\bin\pip.exe
当你 运行 pip install requests
。更重要的是,这实际上是 activate.bat
脚本存在的主要目的之一;这样,您不需要指定安装在 venv 中的每个可执行文件的精确路径,而不是使用 C:\path\to\my\venv\bin\python
只要您激活,您就可以使用 python
、 venv。如果您从不 运行 C:\path\to\my\venv\bin\activate.bat
那么 PATH
环境变量将与开始时一样,并且 将 全局安装包(这是不是你想要的)。