让intellij对项目中的子目录使用不同的python SDK

问题描述 投票:0回答:3

我有一个像这样的Python项目:

project/
project/code
project/code/requirements.txt
project/fabfile
project/fabfile/requirements.txt

project/code
是一个Python3项目,所以我需要使用该SDK。
project/fabfile
必须是python2,因为Fabric目前不支持python3。

在命令行上,我有两个 virtualenv 来管理它,但在 IntelliJ 中(使用 python 插件),我将 SDK 设置为 Python3,并将 virtualenv 用于项目 SDK。因此,它没有检测到 fabfile/ 中的不同要求,并将 python2 语法标记为错误。

我怎样才能让它使用不同的 SDK?

python python-3.x intellij-idea pycharm python-2.x
3个回答
1
投票

如果您使用 IntelliJ IDEA,您可以设置多模块项目,并为每个模块分配不同的解释器。创建一个以“code”作为内容根的模块,另一个以“fabfile”作为内容根的模块。


0
投票

据我所知,我不认为你可以同时使用不同的解释器

您必须在每个项目上切换口译员

转到“首选项”>“项目解释器”并将解释器指向您的虚拟环境


0
投票

假设以下存储库结构:

.
├── README.md
└── components
    └── module_A
        ├── src/...
    │   └── pyproject.toml
    └── module_B
        ├── src/...
        └── pyproject.toml

在 IntelliJ IDEA 2024 中,使用 JetBrains Python 插件:

从根项目中排除每个模块(这是避免下一步发生冲突所必需的):

  1. 前往
    File
    ->
    Project Structure
    ->
    Modules
  2. 选择您的根模块并单击
    Sources
    选项卡
  3. 将所有模块标记为排除(在我的示例中,我将整个
    components
    目录标记为排除)

单独添加每个模块

  1. 前往
    File
    ->
    Project Structure
    ->
    Modules
  2. 点击
    +
    ->
    Import Module
  3. 选择项目内的模块路径(例如:
    components/module_A
  4. 选择
    Create module from existing sources
    并单击
    Next
  5. 仅选择第一个复选框(应与您在步骤 3 中选择的模块路径匹配),然后单击
    Next
    Create
  6. 新模块将出现在列表中。右键单击它,然后单击
    Add
    ->
    Framework
    ->
    Python
    。这将打开一个窗口,供您为该模块配置 Python 解释器。

在此之后,我还没有在 IDE 中测试运行代码,但我可以在每个模块下的文件中使用完整的代码完成和导航,并且该模块解释器的所有依赖项都是可见的。

© www.soinside.com 2019 - 2024. All rights reserved.