虚拟环境无法安装pip

5

我已通过homebrew安装了python3,更新了pipsetuptools,并通过pip安装了virtualenv。现在我正在尝试创建一个虚拟环境,但是不幸的是,我无法将pip添加到虚拟环境中。基本上:

$ ls -lha venv/bin/
total 80
drwxr-xr-x  9 foghin  staff   306B Jan 19 17:16 .
drwxr-xr-x  6 foghin  staff   204B Jan 19 17:16 ..
-rw-r--r--  1 foghin  staff   2.2K Jan 19 17:16 activate
-rw-r--r--  1 foghin  staff   1.2K Jan 19 17:16 activate.csh
-rw-r--r--  1 foghin  staff   2.4K Jan 19 17:16 activate.fish
-rw-r--r--  1 foghin  staff   1.1K Jan 19 17:16 activate_this.py
lrwxr-xr-x  1 foghin  staff     7B Jan 19 17:16 python -> python3
-rwxr-xr-x  1 foghin  staff    13K Jan 19 17:16 python3
lrwxr-xr-x  1 foghin  staff     7B Jan 19 17:16 python3.3 -> python3

据我所知,pip 应该也在里面。使用高度详细的虚拟环境创建命令可以得到以下输出:
Installing setuptools, pip...
  Running command /Users/foghin/code/tastekid/venv/bin/python3 -c "import sys, pip; pip...ll\"] + sys.argv[1:])" setuptools pip
  Ignoring indexes: https://pypi.python.org/simple/
  Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/local/lib/python3.3/site-packages
  Requirement already satisfied (use --upgrade to upgrade): pip in /usr/local/lib/python3.3/site-packages
  Cleaning up...
...Installing setuptools, pip...done.

这意味着当虚拟环境被激活时,我安装的所有软件包都会安装到全局网站软件包中 (/usr/local/lib/python3.3/site-packages),但它们不会被隔离的 Python 环境获取。

我该如何让 virtualenv 正确地在本地安装 pip?

更新: virtualenv 版本为 1.11。


尝试使用 virtualenv --no-site-packages 命令创建环境。 - Ry-
你应该提及 virtualenv 的确切版本号,这样如果这是一个 bug,追踪它会更容易。 - Stefano Sanfilippo
来自 virtualenv --help 的 @minitech:--no-site-packages 已弃用。仅为向后兼容而保留。现在默认行为是无法访问全局 site-packages。 - Felix
@StefanoSanfilippo更新了我的问题,包括virtualenv版本。 - Felix
1个回答

1
截至目前为止,Homebrew安装的是Python 3.3.3 ($ brew info python3)。
自Python 3.3版本起,Python标准库现在包含了自己的虚拟环境实现,并且不需要virtualenv软件包。请参阅venv模块文档。使用Homebrew Python 3软件包,命令行工具被命名为pyvenv-3.3
我相信使用这个实现应该可以解决你遇到的问题。

3
我也尝试了pyvenv,但是它明确不会安装pipsetuptools。最终我在虚拟环境中手动安装了它们,看起来这样做起作用了。但是,这仍然没有回答为什么virtualenv不像广告中那样工作的问题。 - Felix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接