微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在更大的 PyCharm 或 IntelliJ 项目中,是否支持具有自己的 virtualenv 的子目录?

如何解决在更大的 PyCharm 或 IntelliJ 项目中,是否支持具有自己的 virtualenv 的子目录?

使用 IntelliJ 作为我的 IDE,将包含自己的基础设施/部署代码的应用程序放在一起。签入 Git 的整个项目包括在我的项目下的子目录中包含的几个独立的 Python 脚本(包括它们的包信息和支持的 Python 文件)。我的 IAC/部署代码负责确保这些脚本在部署到的基础设施上时具有包含所需包的 virtualenv。除了我尝试让 IntelliJ 了解 python 子目录环境之外,所有这些都运行良好。

当我将整个项目树作为一个IntelliJ项目打开时,似乎没有办法向IntelliJ解释一些子目录应该被视为他们自己的python项目,这样他们才能拥有自己的virtualenv,包和基本导入目录已理解。由于 IntelliJ 不理解这些东西,它认为我在这些脚本中的导入已损坏,我无法在代码等中跳转

作为一项工作,我有时只是将 python 子目录作为他们自己的 IntelliJ 项目打开,以便 IntelliJ 可以理解它们。但这并不理想,因为我必须为同一个更大的项目使用多个不同的 IntelliJ 实例。

所以现在也许我的问题更有意义,我将重申一遍。是否有某种方法我可以让一个 IntelliJ 实例正确理解整个项目,包括某些子目录就像具有自己的虚拟环境和包等的 python 子项目?

解决方法

PyCharm/IntelliJ“项目”可以有“子项目”。您可以通过将一个项目“附加”到另一个项目来访问此功能。打开一个项目。然后打开第二个项目。您将看到一个对话框,询问您希望如何打开项目,其中一个选项是“附加”。如果选择此选项,则第二个项目将添加到已打开的窗口中,并且您的窗口现在包含两个有些独立的项目。

如果您现在打开 Preferences 面板,并选择“Project: xxx -> Project Interpreter”,您应该会看到在面板的中央部分列出了两个项目。您可以选择其中的每一个并为每个项目独立配置解释器/环境设置。您还可以以同样的方式为每个子项目独立设置项目结构和项目依赖关系。我相信,这就是您要问的如何做。

为了说明,这里的屏幕截图显示了它的外观,这里有三个项目在单个窗口/主项目中管理:

PyCharm Preferences Panel

根据上面屏幕截图中的“项目:if-lab”部分标题,PyCharm/IntelliJ 似乎认为其中一个项目是主要项目。您可以在“首选项”窗格中看到这一点,其中每个项目的设置都列在“项目:xxx”之类的标题下,其中“xxx”是主要项目的名称。 我不确定将一个项目作为主要项目的概念是如何发挥作用的。

这是 PyCharm 文档中的一个页面,解释了其中的一些内容:

https://www.jetbrains.com/help/pycharm/opening-multiple-projects.html

该页面的以下部分解释了子项目如何与主项目交互:

新打开的项目与已经打开的项目共享同一个窗口 一。已经打开的项目,被认为是 主项目,并且始终首先显示在“项目”工具窗口中。 所有其他项目都添加到主项目中。

您可以从依赖项目导入类和方法。使用 用于配置此行为的依赖项项目设置。

一些设置(例如 Django、Buildout、Google App Engine、模板 语言、Python 解释器、内容根)可以配置 分别为每个项目。

您还可以通过创建多个运行/调试配置来配置独立于项目环境的不同执行环境。这些设置控制执行时发生的事情,但不影响语法检查和突出显示、代码完成等。

,

我已经接受了@Steve 的非常详细的回答,并且发现它让我走上正轨非常有用。但是对于我的特定 IntelliJ 版本(MacOS 上的 2020.1.2),我必须对其进行一些不同的设置,因此我将我所做的作为替代答案包括在内:

请注意,对于我的 IntelliJ 版本和这种方法,用作 python 根的子目录不需要是项目本身,就像史蒂夫的答案一样。

步骤 1) 为项目的子目录设置一个 virtualenv,该子目录将作为您的 Python 代码的根目录。我用的是 python 诗,不管你用什么方法,记下 virualenv 的 python 可执行文件的路径,因为你以后需要在 IntelliJ 中输入它。

步骤 2) 打开文件 -> 项目结构。弹出一个窗口(我最终花了 30 秒左右)。

步骤 3) 在 Project Structure 窗口左侧的面板上,选择“Modules”

步骤 4) A 左起第二列的顶部是一个 + - 和复制图标。单击 + 图标。将出现一个下拉列表,您应该选择“导入模块”,从而出现另一个弹出窗口。

步骤 5) 在弹出窗口中,导航到项目的子目录,该子目录将用作 Python 脚本的根目录,然后使用右下角的打开按钮选择它。弹出窗口消失,几秒钟后出现“导入模块”弹出窗口。

第 6 步)在“导入模块”窗口中选择“从现有源创建模块”,然后单击“下一步”按钮并按照向导的步骤操作,这将使您有机会指定您在第 1 步中设置的 virtualenv 路径。>

第 7 步)在导入模块窗口中单击完成,您应该已设置完毕。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。