2

我正在使用 Python 的 3.5 内置 virrtualenv 包创建一个新的 Python 虚拟环境:

D:\Projects>python -m venv --system-site-packages proj_3

D:\Projects>cd proj_3

D:\Projects\proj_3>Scripts\activate.bat

(proj_3) D:\Projects\proj_3>pip install comtypes
Collecting comtypes
  Downloading comtypes-1.1.2.zip (179kB)
    100% |################################| 184kB 569kB/s
Installing collected packages: comtypes
  Running setup.py install for comtypes ... done
Successfully installed comtypes-1.1.2

(proj_3) D:\Projects\proj_3>dir Lib\site-packages
 Volume in drive D has no label.
 Volume Serial Number is 0E52-CE22

 Directory of D:\Projects\proj_3\Lib\site-packages

20.05.2016  14:15    <DIR>          .
20.05.2016  14:15    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  268,620,853,248 bytes free

所以我想重用现有的系统包并在我创建的 virtualenv 中安装新包。但是,尽管我在 virtualenv 中,但 pip 将包安装在我的系统库中,而不是在本地项目中。

(proj_3) D:\Projects\proj_3>where pip
C:\Python35\Scripts\pip.exe

(proj_3) D:\Projects\proj_3>python -m ensurepip
Ignoring indexes: https://pypi.python.org/simple
Requirement already satisfied (use --upgrade to upgrade): setuptools in c:\python35\lib\site-packages
Requirement already satisfied (use --upgrade to upgrade): pip in c:\python35\lib\site-packages

看起来 pip 没有在我的本地包中引导,因为它已经存在于我的系统包中。除非我做错了什么,否则这是出乎意料的,因为在 Python 2 中使用 virtualenv 不会像这样。

有什么想法可能是错的吗?

4

1 回答 1

3

这是一个已经在这里报告的错误:https ://bugs.python.org/issue24875

在修复之前,请尝试此解决方法。

首先,创建没有--system-site-packages. 然后修改创建的环境。

pyvenv /path/to/env && pyvenv --system-site-packages /path/to/env
于 2016-12-06T07:13:08.253 回答