virtualenv与setup.py install --user的对比

4 投票
2 回答
596 浏览
提问于 2025-04-28 16:40

我在使用setuptools,并且在用virtualenv。每当我尝试用--user安装时,就会遇到一些问题:

  1. 有个提示说.pth文件不被支持
  2. 看起来它是在虚拟环境外面安装的

我是不是应该干脆不使用--user,因为我已经在虚拟环境里了呢?

exec ../virtualenv/target/vroot/bin/python setup.py install --user
running install
Checking .pth file support in /Users/benson/.local/lib/python2.7/site-packages/
/Users/benson/x/ws-client-bindings/python/setup/../virtualenv/target/vroot/bin/python -E -c pass
TEST FAILED: /Users/benson/.local/lib/python2.7/site-packages/ does NOT support .pth files
error: bad install directory or PYTHONPATH
暂无标签

2 个回答

2

是的,我建议你放弃那种使用方式,直接在你的 virtualenvbin 目录下用 pip 来安装所有东西。这样做的好处是,使用绝对路径来安装和运行 virtualenv,可以避免任何不确定性,确保你知道自己在用哪个环境。

你还可以跟踪每个 virtualenvrequirements 文件(可以通过 pip freeze > requirements 命令来生成),这样在其他地方快速创建这些环境就变得很简单了。

5

用户目录是Python的一部分,而不是虚拟环境(virtualenv)的一部分。安装到用户目录的包看起来就像系统包一样(它们在虚拟环境外也能使用)。所以,这并不能解决为特定应用程序隔离包需求和版本的问题。

标准的做法是先激活虚拟环境,然后使用安装命令时不要加--user这个选项。

撰写回答