使用Poetry安装了Pillow后无法导入PIL

3

我正在尝试在Python 3.9.2中使用Pillow(由pyenv管理)。 我使用Poetry来管理我的虚拟环境和依赖项,因此我运行poetry add pillow,成功将Pillow =“^8.2.0”添加到了我的pyproject.toml中。根据Pillow文档,我在脚本中添加了from PIL import Image,但是当我尝试运行它时,我得到以下错误:

File "<long/path/to/file.py>", line 3, in <module>
    from PIL import Image
ModuleNotFoundError: No module named 'PIL'

当我查看venv Poetry为我创建的内容时,我可以看到一个PIL目录(/long/path/lib/python3.9/site-packages/PIL/)和其中的一个Image.py文件。
我错过了什么? 我已经尝试过:
  • this中的方式将其大小写转换为from pil import Image;但没有起作用
  • 降级到较低版本的Python和PIL;可以运行,但是这样做没有意义
  • 预计时间:通过Poetry导出requirements.txt文件,使用venv创建虚拟环境并手动安装包;可以运行,但是这让我无法使用Poetry/pyproject.toml
非常感谢任何帮助。

1
你是怎么运行脚本的?之前有激活虚拟环境吗? - finswimmer
1
命令poetry run python <your script.py>的输出是什么? - ont.rif
@finswimmer: 我的步骤如下:
  1. 使用命令 poetry shell 激活虚拟环境;
  2. 执行命令 poetry install:从技术上讲,这是不必要的,因为 add 命令应该会安装所需的依赖,但最好确认一下。输出结果应为:No dependencies to install or update
  3. 执行命令 python script.py;在这一步中,我遇到了 ModuleNotFoundError: No module named 'PIL' 的错误提示。
- Michael
@ont.rif: 哦,看起来这个工作正常(嗯,它会在tkinter上出现错误,但我想我知道如何解决)。 - Michael
2个回答

1

我也找不到解决这个问题的方法(使用poetry 1.1.13)。

最终,我采用了一个变通方法:poetry add pillow && pip install pillow,这样我就能继续我的生活了。:P

poetry add pillow 将依赖项添加到 TOML 中,因此包的消费者应该没问题。


1

对我来说,将“Pillow”大写解决了这个问题:

poetry add Pillow


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接