包导入在 PyCharm Python 控制台中不起作用

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

我正在 Python 3.11 的一个项目中使用 Poetry。任何带有

poetry run ...
的命令都可以正常工作,但在 PyCharm 中使用 Poetry 环境作为 Python 解释器时遇到问题。

当我使用 Python 控制台并尝试

import psycopg2
时,我得到了

ModuleNotFoundError:没有名为“psychopg2”的模块

在终端中运行

poetry run python -c "import psycopg2"
效果很好。 PyCharm 中配置的解释器是与我通过
poetry env info -p
提取的 Poetry 环境对应的解释器。

有趣的是,当通过以下方式手动使用 Poetry 环境运行时:

/Users/richardknudsen/Library/Caches/pypoetry/virtualenvs/app-v-qyCfCG-py3.11/bin/python -c "import psycopg2"

我收到与处理器架构相关的错误:

导入错误: dlopen(/Users/richardknudsen/Library/Caches/pypoetry/virtualenvs/app-v-qyCfCG-py3.11/lib/python3.11/site-packages/psycopg2/_psycopg.cpython-311-darwin.so, 0x0002):尝试过: '/Users/richardknudsen/Library/Caches/pypoetry/virtualenvs/app-v-qyCfCG-py3.11/lib/python3.11/site-packages/psycopg2/_psycopg.cpython-311-darwin.so' (mach-o 文件,但是是一个不兼容的体系结构(有“x86_64”,需要 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/richardknudsen/Library/Caches/pypoetry/virtualenvs/app-v-qyCfCG-py3.11/lib/python3.11/site-packages/psycopg2/_psycopg.cpython- 311-达尔文.so' (没有这样的文件), '/Users/richardknudsen/Library/Caches/pypoetry/virtualenvs/app-v-qyCfCG-py3.11/lib/python3.11/site-packages/psycopg2/_psycopg.cpython-311-darwin.so' (mach-o 文件,但是是一个不兼容的体系结构(有“x86_64”,需要 ‘arm64’)

并非所有软件包都会出现这两个错误,例如导入

sqlalchemy
效果很好。

我觉得我在理解诗歌如何在 PyCharm 中正确设置它方面缺少一些拼图。

pycharm psycopg2 python-poetry
1个回答
0
投票

我自己从未使用过 PyCharm,但在使用诗歌时,我通常通过全局配置诗歌或在项目中使用以下

poetry.toml
文件来让诗歌在我的项目中创建虚拟环境:

[virtualenvs]
create = true
in-project = true

主要好处:在本地虚拟环境中,使用不支持诗歌的工具或者诗歌集成在寻找正确的 venv 时遇到问题时会更容易。如果一个工具不支持诗歌,它至少支持

.venv
文件夹中的本地 venv。

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