【问题标题】:Pip freeze doesnt show freshly installed packages with PycharmPip freeze 不显示新安装的 Pycharm 软件包
【发布时间】:2019-01-24 17:30:37
【问题描述】:

我使用 Pycharm 在我的项目中创建和管理我的虚拟环境。

问题是用pycharm添加库后,当我输入命令(pip3 freeze --user)时,命令结果中没有出现该库。

我每次都必须手动输入pip install 命令才能看到库。

我应该在 PyCharm 中做什么操作来解决这个问题?

【问题讨论】:

  • 你的意思是你必须重新安装它才能“可见”?

标签: python-3.x ubuntu pip pycharm virtualenv


【解决方案1】:

对于你所说的,首先想到的是你应该使用:

pip freeze

不是

pip3 freeze

因为激活 virtualenv 时映射到 pip 版本的命令是第一个。请注意,安装时您似乎使用pip,而不是pip3

此外,--user 选项 afaik 与安装在用户文件夹中的软件包有关:

--user      Install to the Python user install directory for your platform. Typically 

~/.local/, or %APPDATA%\Python on
             Windows. (See the Python documentation for site.USER_BASE for full details.)

如果您的软件包安装在 virtualenv 文件夹中,我会告诉您不要使用该选项。

另外,请确保您的 virtualenv 已激活。在 linux 中,您可以通过 source path/to/virtualenv/activate 进行操作

编辑

我了解您使用 pip3 的原因是因为您的机器中可能有不同版本的 Python。让我进一步解释一下它是如何工作的,因为版本管理通常是许多程序员头疼的问题,而且这样做时经常会发现问题。

如果您在 linux 机器上安装不同版本的 Python,并且您以 root 身份执行此操作,那么整个系统的安装将继续进行。通常Linux机器的Python2安装文件夹是/usr/bin/python。但是,我不确定哪个目录用于 Python3 安装。您可以通过whereis python3 轻松检查。您可以通过whereis command 搜索任何命令的二进制路径。请注意,这也适用于whereis python,只要您没有激活virtualenv

此外,命令二进制文件的链接(或更广泛地说是要执行的指令集)在 Linux 中的某些文件夹中定义,具体取决于您是以 root 还是用户身份创建命令,并且可能也在发行版上。这在 Windows 中的工作方式有所不同,它使用注册表编辑实用程序来处理命令映射。当您启用 virtualenv 时,您所做的是创建一个环境,该环境可以将python 等系统命令映射到您的 virtualenv 文件夹中的 Python 安装。

当您禁用 virtualenv 时,该命令会再次指向默认安装路径。 pip 也是如此,因此不正确地使用此工具可能会导致不同的软件包安装在不同的位置,因此在任何给定情况下都无法用于正确的 Python 版本。

在 Linux 中,环境变量依赖于 shell,但您可以使用 echo $variable 将它们写出来并使用 variable=value 设置它们(来自 bash)。搜索路径简称为 PATH,您可以通过键入 echo $PATH 来获取。

来源:https://askubuntu.com/a/262073/426469

我鼓励您查看 SE 网络中的其他问题,例如:https://unix.stackexchange.com/a/42211/96121,以了解更多信息。

附录

快速提示pip freeze 命令的常用用法如下: pip freeze > requirements.txt

这是一个标准,可以让您了解此类文件中的模块是应用程序正常运行所必需的。当您在另一台计算机上安装程序时,这使您可以轻松排除 virtualenv 文件夹,因为您可以轻松了解全新安装的要求。但是,您可以根据需要使用该命令。

【讨论】:

  • 非常感谢,我刚刚意识到我在使用 pip 时使用了一个糟糕的工作流程(我使用 bash 全局安装了软件包,而 pycharm 在本地安装了它们)
  • 不客气 :) @etaurrnetvalent 如果您认为它解决了您的问题,请随时接受我的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 2017-01-25
  • 1970-01-01
  • 1970-01-01
  • 2019-12-24
  • 2016-03-02
相关资源
最近更新 更多