我首先输入以下代码,
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<CodeContractsEnableRuntimeChecking>True</CodeContractsEnableRuntimeChecking>
<CodeContractsRuntimeOnlyPublicSurface>False</CodeContractsRuntimeOnlyPublicSurface>
<CodeContractsRuntimeThrowOnFailure>True</CodeContractsRuntimeThrowOnFailure>
....
<CodeContractsReferenceAssembly>%28none%29</CodeContractsReferenceAssembly>
<CodeContractsAnalysisWarningLevel>0</CodeContractsAnalysisWarningLevel>
</PropertyGroup
然后我试了
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
结果是在本地环境中创建了包请求,即在path ... project \ env \ Lib \ site-packages下,但是,我在python教程中看到这段代码实际上会在全局创建请求,并且为了在本地创建请求,需要使用
pip install requests
所以我想知道为什么my_env\Scripts\pip.exe install requests
在我的情况下也会在本地执行?教程错了吗?您可以参考http://thepythonguru.com/python-virtualenv-guide/
答案 0 :(得分:2)
当您的操作系统(在本例中为windows)在没有给出可执行文件的路径(如pip
)时搜索可执行文件时,它会搜索{{PATH
中的每个目录。 1}}该可执行文件的环境变量(即在
python3
)
PATH="C:\Python27\bin;C:\Program Files\git\bin;
C:\Program Files (x86)\Java\JDK\6.0\bin;C:\Python35\bin"
然后命令行将在每个目录中搜索可执行文件名python3
。但是,它在搜索最后一个目录之前找不到可执行文件,然后它将运行C:\Python35\bin\python3.exe
。
当您安装虚拟环境(简称venv)时,会创建一个名为C:/path/to/my/venv/bin/activate.bat
的脚本,您可以运行激活(这真是一个惊喜!) venv < / em>的。除此之外,该脚本预先 C:\path\to\my\venv\bin
到PATH
(即设置PATH="C:\path\to\my\venv\bin;$PATH
,其中美元符号仅表示使用{{1}的值变量。
然后,当您运行PATH
时,命令行开始在PATH中搜索pip可执行文件。它按顺序尝试输入,因此它在pip install requests
目录中找到了pip.exe
,因此实际上当您运行C:\path\to\my\venv\bin
时, 无意中使用了C:\path\to\my\venv\bin\pip.exe
。更重要的是,这是实现;; pip install requests
脚本存在的主要目的之一;这样,您就不需要指定已安装在venv中的每个可执行文件的精确路径,而不是使用activate.bat
,只要激活,您就可以使用C:\path\to\my\venv\bin\python
, venv 。如果您从未运行python
,则C:\path\to\my\venv\bin\activate.bat
环境变量将与开头一样,并且将全局安装包(不你想要的是什么。)