【问题标题】:Why doesn't setuptools 1.3.1 appear when I pip freeze?为什么我 pip freeze 没有出现 setuptools 1.3.1?
【发布时间】:2013-11-19 04:26:39
【问题描述】:

我在 Ubuntu 12.04 上运行 virtualenvwrapper 和朋友(virtualenvwrapper 1.7.1.2、virtualenv 1.7.1.2、pip 1.0、Distribute 0.6.24、Python 2.7)。为了能够pip install matplotlib,我需要更新版本的 Distribute/setuptools,所以我执行以下操作:

$ mkvirtualenv new_venv
$ pip install matplotlib # fails
$ easy_install -U distribute
# installs Distribute 0.7.3 in the venv,
# which then installs setuptools 1.3.1
$ pip install matplotlib # works

但是,当我运行 pip freeze 时,我得到:

argparse==1.2.1
distribute==0.7.3 # here's Distribute
matplotlib==1.3.1
nose==1.3.0
numpy==1.8.0
pyparsing==2.0.1
python-dateutil==2.2
six==1.4.1
tornado==3.1.1
wsgiref==0.1.2

setuptools 在哪里?我只试过pip install setuptools,它也没有出现在那里。

【问题讨论】:

    标签: virtualenv pip setuptools distribute


    【解决方案1】:

    pip 不会列出 pip 本身所依赖的包,除非你告诉它。您可以通过以下方式包含此类软件包: pip freeze --all

    freeze 以需求格式列出包 - 用于需求文件等 - 而 list 只是一个列表。

    更多详情请见Pip freeze vs. pip list

    【讨论】:

    • pip freeze --all 现在可以在 python 2.7 上使用 pip 版本 7.0.1。不过我使用了pip list,它起作用了
    【解决方案2】:

    在 Ubuntu 上,setuptools 由系统包管理器安装。所以当你pip freeze时没有列出。在创建 virtualenv 时,您将收到这些消息

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

    如果您在此之后立即执行pip freeze,您将得到类似的结果

    argparse==1.2.1
    wsgiref==0.1.2
    

    这里不会列出setuptoolspip

    如果你想要一切,你可以做一个pip list,它会给出这样的东西。

    argparse (1.2.1)
    pip (1.5.6)
    setuptools (3.6)
    wsgiref (0.1.2)
    

    【讨论】:

    • freezelist有什么区别?
    猜你喜欢
    • 2018-06-22
    • 2021-02-24
    • 2015-02-26
    • 2017-07-07
    • 2015-05-12
    • 1970-01-01
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多