我在 IntelliJ 2021.2.3 中有一个 Python 项目,使用 Poetry 作为依赖项管理器。我有诗歌插件和python 插件已安装。
我最近将这个项目从 重命名old_project_name
为new_project_name
。我重命名了项目的目录、pyproject.toml
文件中的项目名称,并更新了 Intellij 项目结构中的名称:
File > Project Structure > Project Settings > Project > Project Name
File > Project Structure > Project Settings > Modules > Name
现在我想在这个项目中安装 pytest 对 intelliJ 的支持。所以我按照Jetbrain 的 pytest 设置文档
- 去
Tools > Manage Python Packages
- 搜索
pytest
- 点击
install
但是安装失败并出现以下错误消息:
无法启动进程,工作目录“/home/user/projects/old_project_name”不存在
我怎样才能将当前设置为的工作目录更改/home/user/projects/old_project_name
为与我的新项目名称相对应的目录/home/user/projects/new_project_name
?
一个简单的解决方案是删除并重新创建我的项目,但我想知道是否有更好的选择。
答案1
- 关闭 intellij
- 更改项目名称
- 转到项目名称文件夹,在某些文件管理器中搜索所有出现的 old_project_name 并重命名为新名称。然后转到 intellij,它应该可以工作。
答案2
TDLR:我通过使用诗歌插件重新创建我的项目的虚拟环境解决了这个问题
是什么导致了我的问题?
当我重命名我的项目时,我并没有改变我使用诗歌插件创建的项目虚拟环境。这个虚拟环境虽然看起来像是一个全局虚拟环境,但实际上与项目相关联。如果你查看 IntelliJ 配置中的虚拟环境定义,你会发现在文件中~/.config/JetBrains/IntelliJIdea2021.2/options/jdk.table.xml
,有一个ASSOCIATED_PROJECT_PATH
元素明确包含项目的路径:
<application>
<component name="ProjectJdkTable">
<jdk version="2">
<name value="Poetry (old_project_name)" />
<type value="Python SDK" />
<version value="Python 3.10.0" />
<homePath value="$USER_HOME$/.cache/pypoetry/virtualenvs/old_project_name-HdcC6q8N-py3.10/bin/python" />
<roots>
<annotationsPath>
<root type="composite" />
</annotationsPath>
<classPath>
<root type="composite">
<root url="file:///usr/local/lib/python3.10" type="simple" />
<root url="file:///usr/local/lib/python3.10/lib-dynload" type="simple" />
<root url="file://$USER_HOME$/.cache/pypoetry/virtualenvs/old_project_name-HdcC6q8N-py3.10/lib/python3.10/site-packages" type="simple" />
<root url="file://$USER_HOME$/.cache/JetBrains/IntelliJIdea2021.2/python_stubs/95207232" type="simple" />
<root url="file://$APPLICATION_PLUGINS_DIR$/python/helpers/python-skeletons" type="simple" />
...
<root url="file://$APPLICATION_PLUGINS_DIR$/python/helpers/typeshed/stubs/python-dateutil" type="simple" />
</root>
</classPath>
<javadocPath>
<root type="composite" />
</javadocPath>
<sourcePath>
<root type="composite" />
</sourcePath>
</roots>
<additional ASSOCIATED_PROJECT_PATH="$USER_HOME$/projects/old_project_name" IS_POETRY="true" />
</jdk>
</component>
</application>
因此,我无法在不再存在的项目的虚拟环境中安装新的依赖项。
我如何解决它
重命名项目时,您应该按照以下步骤重新创建一个新的虚拟环境并将其链接到您的项目:
- 去
File > Project Structure
- 选择
Platform Settings > SDKs
在左侧菜单中 - 点击
+
左上角的 并选择Add Python SDK...
- 选择
Poetry Environment
在左侧菜单中 - 点击
Ok
右下角,它会创建名为Poetry (new_project_name)
- 选择
Project Settings > Project
- 选择 SDK
Poetry (new_project_name)
而不是Poetry (old_project_name)
在Project SDK
下拉菜单 - 点击
Apply
右下角的
这样,您就一切就绪,可以安装新的 Python 包,而无需Cannot start process, the working directory '...' does not exist
错误