我使用Pycharm在我的项目中创建和管理我的虚拟环境。
问题是使用 pycharm 添加库后,当我键入命令 (pip3 freeze --user
时,该库不会出现在命令结果中。
我每次都必须手动键入pip install
命令,以便库可见。
我应该在 PyCharm 中进行哪些操作来解决此问题?
对于您所说的内容,首先想到的是您应该使用:
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 文件夹中,我会告诉您不要使用该选项。
另外,请确保您已激活虚拟环境。在 linux 中,你可以通过source path/to/virtualenv/activate
来做到这一点
编辑
我知道你使用pip3
的原因是因为你的机器中可能有不同版本的Python。让我进一步解释一下它是如何工作的,因为版本管理通常是许多程序员头疼的问题,并且在这样做时通常会发现问题。
如果您在 linux 机器中安装了不同版本的 Python,并且以 root 身份执行此操作,则整个系统的安装将继续进行。通常 Linux 机器的 Python2 安装文件夹是/usr/bin/python
。但是,我不确定哪个目录用于 Python3 安装。您可以通过执行whereis python3
轻松检查。您可以通过执行whereis command
来将任何命令的路径设置为二进制文件。请注意,这也适用于未激活virtualenv
whereis python
。
另外,指向命令二进制文件(或要执行的指令集,更广泛地说(的链接是在 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
命令: 点冻结>要求.txt
这是一个标准,可以理解此类文件中的模块是应用程序正常运行所必需的。这使您在另一台计算机上安装程序时可以轻松排除virtualenv
文件夹,因为您可以很容易地知道全新安装的要求。但是,您可以根据需要使用该命令。