python 虚拟环境正在安装到 /usr/...?

python virtual environment is installing to /usr/...?

我有一个用于 Django 应用程序的 python 虚拟环境。我用...激活它...

source venv/bin/activate

那行得通,但是当我尝试 运行 pip 安装时我得到了这个回溯...

Installing collected packages: django-blog-zinnia
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run
    requirement_set.install(install_options, global_options, root=options.root_path)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install
    requirement.install(install_options, global_options, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install
    self.move_wheel_files(self.source_dir, root=root)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files
    pycompile=self.pycompile,
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber
    os.makedirs(destsubdir)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/zinnia'

Storing debug log for failure in /home/jeff/.pip/pip.log

所以当我应该 运行在 venv 中时,为什么它会尝试在 /usr 中安装一些东西?

添加了输出 虚拟环境 venv

New python executable in venv/bin/python
Installing setuptools, pip...done.

当我使用 source 启动那个 venv 和 运行 时 python 我明白了...

/home/user/Desktop/test/venv/bin/python

检查 which pip 的输出,很可能没有安装 pip。如果不是来自 venv 的 pip,还要检查 which python。如果不是 venv 的 python,你不在新环境中 - 应该有一些错误。

如果只缺少 pip,请尝试安装:

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | python

编辑

Virualenv 仅适用于当前 shell 会话。要在另一个 session/terminal/window 中使用,您必须再次激活它。它会一直存在,直到你 deactivate 它。