【问题标题】:virtualenv not installing pipvirtualenv没有安装pip
【发布时间】:2015-07-29 23:54:49
【问题描述】:

我正在尝试在新项目文件夹中安装新的虚拟环境,但它没有在虚拟环境中安装 pip

这是 bash 日志:

$ virtualenv --version
12.1.1

$ sudo virtualenv venv
Password:
New python executable in venv/bin/python2.7
Not overwriting existing python script venv/bin/python (you must use venv/bin/python2.7)
Please make sure you remove any previous custom paths from your /Users/keithy/.pydistutils.cfg file.
Installing setuptools, pip...done.

$ source venv/bin/activate

(venv) $ which python
/Users/keithy/Desktop/learn/flasky/venv/bin/python

(venv) $ which pip
/usr/local/bin/pip

(venv) $ ls -l venv/bin
total 80
-rw-r--r--  1 root    staff   2220 May 18 08:48 activate
-rw-r--r--  1 root    staff   1276 May 18 08:48 activate.csh
-rw-r--r--  1 root    staff   2489 May 18 08:48 activate.fish
-rw-r--r--  1 root    staff   1137 May 18 08:48 activate_this.py
lrwxr-xr-x  1 root    staff      9 May 18 08:53 python -> python2.7
lrwxr-xr-x  1 root    staff      9 May 18 08:53 python2 -> python2.7
-rwxr-xr-x  1 keithy  staff  12616 May 18 08:53 python2.7

(venv) $ pip install flask-bootstrap
Collecting flask-bootstrap
  Downloading Flask-Bootstrap-3.3.4.1.tar.gz (442kB)
    100% |################################| 446kB 1.9MB/s
Requirement already satisfied (use --upgrade to upgrade): Flask>=0.8 in /lib/python2.7/site-packages (from flask-bootstrap)
Requirement already satisfied (use --upgrade to upgrade): Werkzeug>=0.7 in /lib/python2.7/site-packages (from Flask>=0.8->flask-bootstrap)
Requirement already satisfied (use --upgrade to upgrade): Jinja2>=2.4 in /lib/python2.7/site-packages (from Flask>=0.8->flask-bootstrap)
Requirement already satisfied (use --upgrade to upgrade): itsdangerous>=0.21 in /lib/python2.7/site-packages (from Flask>=0.8->flask-bootstrap)
Requirement already satisfied (use --upgrade to upgrade): markupsafe in /lib/python2.7/site-packages (from Jinja2>=2.4->Flask>=0.8->flask-bootstrap)
Installing collected packages: flask-bootstrap
  Running setup.py install for flask-bootstrap
    error: could not create '/lib/python2.7/site-packages/flask_bootstrap': Permission denied
    Complete output from command /usr/local/opt/python/bin/python2.7 -c "import setuptools, tokenize;__file__='/var/folders/rx/j0sk_6vs0dg59w3q4rm_wmwc0000gn/T/pip-build-wFK2ha/flask-bootstrap/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/rx/j0sk_6vs0dg59w3q4rm_wmwc0000gn/T/pip-UnbbND-record/install-record.txt --single-version-externally-managed --compile:
    running install

    running build

    running build_py

    creating build

    creating build/lib

    creating build/lib/flask_bootstrap

    copying flask_bootstrap/__init__.py -> build/lib/flask_bootstrap

    running egg_info

    writing requirements to Flask_Bootstrap.egg-info/requires.txt

    writing Flask_Bootstrap.egg-info/PKG-INFO

    writing top-level names to Flask_Bootstrap.egg-info/top_level.txt

    writing dependency_links to Flask_Bootstrap.egg-info/dependency_links.txt

    warning: manifest_maker: standard file '-c' not found



    reading manifest file 'Flask_Bootstrap.egg-info/SOURCES.txt'

    reading manifest template 'MANIFEST.in'

    writing manifest file 'Flask_Bootstrap.egg-info/SOURCES.txt'

    creating build/lib/flask_bootstrap/static

    copying flask_bootstrap/static/jquery.js -> build/lib/flask_bootstrap/static

    copying flask_bootstrap/static/jquery.min.js -> build/lib/flask_bootstrap/static

    copying flask_bootstrap/static/jquery.min.map -> build/lib/flask_bootstrap/static

    creating build/lib/flask_bootstrap/static/css

    copying flask_bootstrap/static/css/bootstrap-theme.css -> build/lib/flask_bootstrap/static/css

    copying flask_bootstrap/static/css/bootstrap-theme.css.map -> build/lib/flask_bootstrap/static/css

    copying flask_bootstrap/static/css/bootstrap-theme.min.css -> build/lib/flask_bootstrap/static/css

    copying flask_bootstrap/static/css/bootstrap.css -> build/lib/flask_bootstrap/static/css

    copying flask_bootstrap/static/css/bootstrap.css.map -> build/lib/flask_bootstrap/static/css

    copying flask_bootstrap/static/css/bootstrap.min.css -> build/lib/flask_bootstrap/static/css

    creating build/lib/flask_bootstrap/static/fonts

    copying flask_bootstrap/static/fonts/glyphicons-halflings-regular.eot -> build/lib/flask_bootstrap/static/fonts

    copying flask_bootstrap/static/fonts/glyphicons-halflings-regular.svg -> build/lib/flask_bootstrap/static/fonts

    copying flask_bootstrap/static/fonts/glyphicons-halflings-regular.ttf -> build/lib/flask_bootstrap/static/fonts

    copying flask_bootstrap/static/fonts/glyphicons-halflings-regular.woff -> build/lib/flask_bootstrap/static/fonts

    copying flask_bootstrap/static/fonts/glyphicons-halflings-regular.woff2 -> build/lib/flask_bootstrap/static/fonts

    creating build/lib/flask_bootstrap/static/js

    copying flask_bootstrap/static/js/bootstrap.js -> build/lib/flask_bootstrap/static/js

    copying flask_bootstrap/static/js/bootstrap.min.js -> build/lib/flask_bootstrap/static/js

    copying flask_bootstrap/static/js/npm.js -> build/lib/flask_bootstrap/static/js

    creating build/lib/flask_bootstrap/templates

    creating build/lib/flask_bootstrap/templates/bootstrap

    copying flask_bootstrap/templates/bootstrap/base.html -> build/lib/flask_bootstrap/templates/bootstrap

    copying flask_bootstrap/templates/bootstrap/fixes.html -> build/lib/flask_bootstrap/templates/bootstrap

    copying flask_bootstrap/templates/bootstrap/google.html -> build/lib/flask_bootstrap/templates/bootstrap

    copying flask_bootstrap/templates/bootstrap/pagination.html -> build/lib/flask_bootstrap/templates/bootstrap

    copying flask_bootstrap/templates/bootstrap/utils.html -> build/lib/flask_bootstrap/templates/bootstrap

    copying flask_bootstrap/templates/bootstrap/wtf.html -> build/lib/flask_bootstrap/templates/bootstrap

    running install_lib

    creating /lib/python2.7/site-packages/flask_bootstrap

    error: could not create '/lib/python2.7/site-packages/flask_bootstrap': Permission denied

    ----------------------------------------
    Command "/usr/local/opt/python/bin/python2.7 -c "import setuptools, tokenize;__file__='/var/folders/rx/j0sk_6vs0dg59w3q4rm_wmwc0000gn/T/pip-build-wFK2ha/flask-bootstrap/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/rx/j0sk_6vs0dg59w3q4rm_wmwc0000gn/T/pip-UnbbND-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /var/folders/rx/j0sk_6vs0dg59w3q4rm_wmwc0000gn/T/pip-build-wFK2ha/flask-bootstrap

这里的问题是pip 没有安装在venv/bin 中。我的问题是——这正常吗?我应该自己安装pip 吗?如果是这样,我该怎么做才能在运行pip install mypackage 之类的东西时,将mypackage 安装在venv 中?

顺便说一句,我正在尝试将所有内容都保留在 2.7 中。 keithy 是我的电脑用户名。

【问题讨论】:

  • 我也很好奇你为什么将你的 venv 创建为sudo。我不认为这会导致您的问题,但它可能会导致其他问题。
  • 您是否尝试在虚拟环境中安装任何东西(使用pip 而它是activated)?发生了什么?
  • 不覆盖现有的 python 脚本 venv/bin/python(您必须使用 venv/bin/python2.7) 请确保从 /Users/keithy/.pydistutils.cfg 中删除任何以前的自定义路径文件。
  • 我正在使用sudo virtualenv,因为easy_install 除非经过 sudo'ed 否则不起作用。我在执行easy_install 时收到此错误[Errno 13] Permission denied: '/lib/python2.7/site-packages/test-easy-install-31475.write-test' - 我没有对站点包的写入权限。
  • 不使用现有的 python 库安装 virtualenv,而不是安装重复项。基本上如果它已经在那里使用它?有一个标志可以关闭它吗?我不确定这是否适用于 PIP 本身?

标签: python virtualenv


【解决方案1】:

我通过删除 $HOME/.pydistutils.cfg 解决了这个问题。

【讨论】:

  • 在经历了四个小时的挫折之后,我终于找到并尝试了这个方法——它成功了!我放了一个detailed writeup in this SO answer,详细说明了如何诊断问题。
【解决方案2】:

我以一种非常规的方式对其进行了修复:我刚刚从头开始重新安装了 OS X Yosemite。我认为这是值得的,因为我的各种 python 发行版都搞砸了,特别是因为我搞乱了默认的 Apple python 发行版。我进行了全新安装,然后 brew install python 并使用了 brew 版本。现在一切正常。 virtualenv venv 现在可以将 pip 正确安装到 venv 文件夹。

【讨论】: