【问题标题】:pip freeze does not show all installed packagespip freeze 不显示所有已安装的软件包
【发布时间】:2013-06-06 10:50:18
【问题描述】:

我正在使用virtualenv。我安装了fabricpip。但是pip freeze 并没有给出任何暗示。包裹在那里,在我的virtualenv 中,但 pip 对此保持沉默。为什么会这样?有什么办法可以调试吗?

【问题讨论】:

  • 你在使用 virtualenv 中的pip 吗?

标签: python virtualenv pip fabric


【解决方案1】:

您可以尝试使用--all 标志,如下所示:

pip freeze --all > requirements.txt

【讨论】:

    【解决方案2】:

    除了上述修复之外,还添加了我的修复, 我在 Windows 上也遇到了同样的问题,即使在激活 virtualenv 之后pip freeze 也没有给我所有已安装软件包的列表。所以我用python -m pip install --upgrade pip 命令升级了我的pip,然后使用pip freeze。 这次它成功了,并给了我所有已安装软件包的列表。

    【讨论】:

      【解决方案3】:

      虽然您的问题是由于拼写错误,但为了帮助其他用户:

      pip freeze 不显示 pip 所依赖的依赖项。如果你想获取所有的包你可以使用pip freeze --all或者pip list

      【讨论】:

        【解决方案4】:

        我自己也试过了:

        在“env”目录中创建一个virtualenv:

        $virtualenv2.7 --distribute env
        New python executable in env/bin/python
        Installing distribute....done.
        Installing pip................done.
        

        接下来,激活虚拟环境:

        $source env/bin/activate
        

        提示已更改。现在安装面料:

        (env)$pip install fabric
        Downloading/unpacking fabric
          Downloading Fabric-1.6.1.tar.gz (216Kb): 216Kb downloaded
          Running setup.py egg_info for package fabric   
        ...
        
        Successfully installed fabric paramiko pycrypto
        Cleaning up...
        

        pip freeze 显示了正确的结果:

        (env)$pip freeze
        Fabric==1.6.1
        distribute==0.6.27
        paramiko==1.10.1
        pycrypto==2.6
        wsgiref==0.1.2
        

        也许你忘了激活虚拟环境?在 *nix 控制台上输入 which pip 以找出答案。

        【讨论】:

        • 哎呀。我在做(愚蠢的我)pip freeze | grep fabric(我安装了很多数据包)。我可以发誓我已经手动扫描了整个列表,但不知何故我跳过了。奇怪的是它被安装为Fabric,但无论如何在我这边表现不是很好。
        • grep -i 也是我的朋友 :)
        • 是的!通常我会在尝试其他任何操作之前运行grep -i,但在这种情况下,我非常确信应该是fabric,我什至没有考虑过这一点。我的意思是,fabric 团队中的谁提出了打破多年来使用小写作为包名的传统的想法? :) 特别是当包在pypi 上调用fabric 时。
        • 可能是同一个人将django注册为Django
        【解决方案5】:

        如果您已将所有预安装的软件包重定向到一个名为 pip-requirements.txt 的文件中,那么解决上述问题非常简单。

        1) 删除您的 virtualenv 文件夹创建新文件夹(我将其命名为 venv

        rm -rf venv && virtualenv venv
        

        2) 安装 pip-requirements.txt

        中的所有 requirements/dependencies
        pip install -r pip-requirements.txt
        

        3) 现在您可以检查 Django 应用程序的已安装包

        pip freeze

        4) 如果您忘记更新需求文件 (pip-requirements.txt),请再次安装 fabric可选步骤 )

        注意:在为您的 Django 应用程序安装任何依赖项后,请始终按如下方式更新任何文件中的要求(确保您的 virtualenv 是激活)

        pip freeze > pip requirements.txt
        

        就是这样。

        【讨论】:

          【解决方案6】:

          这可能很愚蠢,但我也遇到了同样的问题。我通过刷新vs代码文件目录解决了它(vscode里面有一个重新加载按钮)。 :)

          【讨论】:

            【解决方案7】:

            如果以上答案都不适合您。 和我一样,你的 venv 和 pip 配置可能有问题。

            进入您的 venv/bin 并打开 pip 并查看第二行: '''exec' "path/to/yourvenv/bin/python3" "$0" "$@"

            查看这条线是否正确指向您的 venv 内部 例如在我的情况下。 我最初将我的虚拟环境命名为 venv1 后来只是将其重命名为venv2。 这样做我的 pip 文件第二行有: '''exec' "venv1/bin/python3" "$0" "$@" 哪个可以正常工作应该有: '''exec' "venv2/bin/python3" "$0" "$@" 注意 "venv2" 而不是 "venv1 " 因为 venv1 现在重命名为 venv2。

            由于这条 python 正在查看 venv2 的 pip 并抛出错误或无法按预期工作。

            【讨论】:

              【解决方案8】:

              对于那些通过 PyCharm IDE 添加 Python 模块的人,在从命令提示符生成虚拟环境后,祝你好运!您需要先运行 pip3 freeze 并添加 PyCharm 中缺少的内容,然后手动重建 requirements.txt 文件。

              我强烈建议切换到 Visual Studio Code。

              【讨论】:

                猜你喜欢
                • 2019-01-24
                • 1970-01-01
                • 2021-06-04
                • 2011-08-19
                • 2015-09-21
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-06-28
                相关资源
                最近更新 更多