Pip冻结不显示Pycharm的新安装软件包

时间:2018-08-17 16:12:30

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

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

问题在于,在使用pycharm添加库之后,当我键入命令(pip3 freeze --user)时,该库不会出现在命令结果中。

我每次必须手动键入pip install命令,以便库可见。

我应该在PyCharm中执行哪些操作来解决此问题?

1 个答案:

答案 0 :(得分:4)

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

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中的工作方式有所不同,Windows使用注册表编辑实用程序来处理命令映射。启用virtualenv时,您正在做的是创建一个环境,以将诸如python之类的系统命令映射到virtualenv文件夹中的Python安装。

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

  

在Linux中,环境变量取决于外壳程序,尽管您可以使用echo $ variable将其写出并使用variable = value设置它们(来自bash)。搜索路径简称为PATH,您可以通过键入echo $ PATH来获取搜索路径。

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

我建议您检查SE网络中的其他问题,例如:https://unix.stackexchange.com/a/42211/96121,以了解有关此问题的更多信息。

附录

快速提示:通常使用pip freeze命令如下:     点冻结> requirements.txt

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